2010-05-11 21 views
17

Tôi tạo ra một thực hiện LoggingHandler mà thực hiện SOAPHandler<SOAPMessageContext>Máy khách dịch vụ web Java JAX-WS: cách yêu cầu nhật ký và phản hồi xml?

Cần đăng nhập bất cứ khi nào handleMessage trigger (và nó không bao giờ được gọi là trong trường hợp của tôi)

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

bây giờ tôi cố gắng này:

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

Tôi không thấy bất kỳ yêu cầu/phản ứng xml mặc dù.

Bạn có thể đề xuất giải pháp nào không? Có thể có một cách khác để xem đầu ra và yêu cầu XML?

Trả lời

23

Nó bắt đầu làm việc nếu bạn sử dụng phương pháp này:

binding.setHandlerChain(handlerList); 

Vì vậy, lần đầu tiên khởi tạo danh sách này với

binding.getHandlerChain(); 

sau đó thêm yếu tố của bạn vào danh sách và sau khi tất cả

setHandlerChain(); 
+0

Đây là giải pháp, bạn nên đánh dấu màu xanh lục. – zygimantus

2

bạn có thể thêm nhật ký trong tệp log4j.xml:

<!-- Log WebService's inputs and outputs --> 
<logger name="org.apache.cxf.interceptor"> 
    <level value="INFO" /> 
    <appender-ref ref="[YOUR_LOGGER]" /> 
</logger> 
Các vấn đề liên quan