我在創建輸出攔截器的階段,並從SOAP消息中獲取OuputStream。但是,我怎麼才能在發送到端點之前修改SOAP信封?我想刪除一些xml元素。如何修改生成的SOAP請求?
9
A
回答
3
一種方式可能是獲取文檔並通過XSLT轉換運行它。
你可以通過調用
@Override
public void handleMessage(SoapMessage message) throws Fault{
SOAPMessage saaj = message.getContent(SOAPMessage.class);
Document doc = saaj.getSOAPPart(); // This actually returns a SOAPPart instance but it does implement the w3c Document interface
//play around with the document, doc is a reference so any changes made to that instance
//will be forwarded to the rest of the chain
}
小心在你的攔截器的的handleMessage文件得到的是,如果你有安全功能,如XML簽名必須在皁含量進行,你必須確保你的攔截器發生在應用簽名之前,否則您將使其無效。
要使用攔截器的時機,您可以指定它將運行的階段。 CXF還應該遵守您將在相同階段執行的配置順序。
,但不要把我的話...檢查這些更多信息
- http://cxf.apache.org/docs/interceptors.html
- http://fusesource.com/docs/esb/4.2/cxf_interceptors/CXFInterceptorIntro.html
調試通過CXF的源代碼也幫了我很大的瞭解它是如何工作的
----編輯----
(謝謝丹尼爾:-)
爲了這個工作,你需要在你的堆棧中配置SAAJOutInterceptor。你可以手動添加它,或者簡單地將它作爲攔截器的一部分。 Here is一個攔截器的例子,幾乎不需要你想要的。
3
+0
你的鏈接被破壞並進入一個通用的紅帽菜單。總結鏈接包含的信息總是一個好主意。 – cosbor11
1
的說明,我這裏張貼的答案https://stackoverflow.com/a/12948702/792313 它是基於全身替代。
相關問題
- 1. SOAP請求修改
- 2. 如何捕捉和修改SOAP請求
- 3. 如何爲SOAP請求生成UsernameToken?
- 4. 如何修改由JAXWS生成的WebMethod請求的XML
- 5. 解析SOAP請求並修改數據
- 6. 使用GetWebRequest修改SOAP請求
- 7. 我可以修改通過SOAP請求
- 8. 修改肥皂水請求目標SOAP
- 9. sudzc生成錯誤的soap請求
- 10. 由Sudzc生成的塊SOAP請求
- 11. 生成從WSDL(.NET)的SOAP請求
- 12. vb.net soap客戶端請求生成
- 13. 用Java生成MM7 Soap請求
- 14. 如何更改在perl中生成SOAP :: Lite請求的xml元素的順序?
- 15. 如何捕獲本地主機上生成的SOAP請求?
- 16. CXF:如何訪問生成的SOAP請求
- 17. 如何從Android中的WSDL生成SOAP請求
- 18. 如何修改SOAP :: Lite中的命名空間生成?
- 19. Ruby SOAP :: RPC ::驅動程序看到生成的soap請求
- 20. PHP與XML - 如何生成一個SOAP請求錯誤415
- 21. 如何爲請求的執行級別修改生成的清單
- 22. ASP.NET MVC - 如何修改請求的URL?
- 23. 如何修改nginx中的請求URI
- 24. 如何修改jmeter訪問日誌採樣器生成的請求?
- 25. 修改UIWebView請求
- 26. 修改請求體
- 27. 修改HTTP請求
- 28. 如何像SOAP UI請求一樣從android構建SOAP請求?
- 29. 如何在SOAP請求
- 30. 如何從SOAP請求
非常感謝您的回答Newtopian。 message.getContent(SOAPMessage.class)總是返回Null,但是:-(我應該在哪個階段讓這個代碼訪問SOAP Envelope? – kiwifrog
您還需要在SAAJOutInterceptor中進行配置,以及進行轉換的攔截器 –
事實上,Daniel是對的,你需要確保SAAJOutInterceptor被配置爲將數據序列化爲SOAPMessage對象。默認情況下,它與我的設置一樣,所以我不必擔心太多。該對象將不再爲空,您將可以隨意使用DOM樹。 – Newtopian