2010-05-11 92 views
17

我創建的LoggingHandler實現SOAPHandler<SOAPMessageContext>Java JAX-WS Web服務客戶端:如何記錄請求和響應xml?

的實現應該登錄時handleMessage觸發器(和它永遠不會在我的情況下調用)

MyService service = new MyService(); 
MyServicePort port = service.getPortType(); 

我現在試試這個:

BindingProvider bindingProvider = (BindingProvider)port; 
bindingProvider.getBinding().getHandlerChain().add(new LoggingHandler()); 

儘管我沒有看到任何請求/響應xml。

你能提出任何解決方案嗎?也許還有另一種方法來查看輸出和請求XML?

回答

23

它開始工作,如果你使用這個方法:

binding.setHandlerChain(handlerList); 

所以,先用

binding.getHandlerChain(); 

初始化這個名單,然後你的元素添加到列表中,畢竟

setHandlerChain(); 
+0

這是解決方案,您應該標記爲綠色。 – zygimantus 2015-10-13 07:34:21

2

您可以在log4j.xml文件中添加一個記錄器:

<!-- Log WebService's inputs and outputs --> 
<logger name="org.apache.cxf.interceptor"> 
    <level value="INFO" /> 
    <appender-ref ref="[YOUR_LOGGER]" /> 
</logger> 
相關問題