我試圖編寫一個Web服務的攔截器,它將在發送到端點之前修改Soap消息的內容。如果客戶端發送的消息中的某個元素的值爲1,我希望能夠將該元素更改爲2,以便當消息到達端點時,它看起來好像客戶端提交了2而不是1.我不確定這是一項困難的任務,還是一件容易的事情,而我正在努力做到這一點。Spring Soap攔截器如何修改消息的內容?
我已經通過了一些Spring攔截器;但驗證和日誌記錄攔截器並不是每個都會改變正在傳輸的消息。 Wss4jSecurityInterceptor確實爲MessageContext添加了一些屬性;但我還沒有能夠利用它正在做的任何事情。我有一個攔截器的外殼;但沒有任何事情做任何有價值的事情。
public boolean handleRequest(MessageContext messageContext, Object endpoint)
throws Exception {
SaajSoapMessage saajSoapMessage = (SaajSoapMessage) messageContext
.getRequest();
SOAPMessage soapMessage = saajSoapMessage.getSaajMessage();
SOAPBody soapBody = soapMessage.getSOAPBody();
return true;
}
我當時希望有其他人已經解決了這個問題。任何洞察力將不勝感激。謝謝。
謝謝。你是對的 - 它不像人們希望的那樣直截了當。我實際上以另一種方式解決了我的問題。雖然它沒有直接解決我的原始問題 - 它解決了我目前的問題。 – Dave 2010-07-28 18:00:11