轴1:如何记录请求和响应xml

时间:2015-10-20 19:45:53

标签: java xml soap axis

我正在研究Axis1.4并从wsdl生成java客户端。 我正在寻找一个很好的工作示例,它展示了如何记录完整的SOAP请求和响应。我确实看到了几个示例,其中使用了handleRequest,handleResponse方法,但我无法理解如何使用/调用这些处理程序从我的java类捕获请求/响应。

举个例子,以下是我调用服务并获取响应的方法。我试图了解如何在我的代码中捕获完整的SOAP XML请求/响应。

//locate service

FundEditorServiceImplServiceLocator locator = new FundEditorServiceImplServiceLocator();

FundEditorService service = locator.getFundEditorServiceImplPort();//invoke service 

FundInfo response = service.getFundInfo(fundInfoSpec);

1 个答案:

答案 0 :(得分:0)

您必须使用处理程序。

HandlerRegistry hr = locator.getHandlerRegistry();
List<HandlerInfo> handlerChain = hr.getHandlerChain((QName) locator.getPorts().next());

HandlerInfo hi = new HandlerInfo();
hi.setHandlerClass(MyHandlerClass.class);
handlerChain.add(hi);

对于每个处理程序类,您必须生成一个HandlerInfo对象。在链上注册它应该工作。 MyHandlerClass应该是javax.xml.rpc.handler.GenericHandler的子类。在那里,您必须实施handleResonse()和/或handleRequest()。您可以调查SOAPMessage(从方法的参数MessageContext获取它)并将内容记录到首选的日志记录框架。