Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 轴1:如何记录请求和响应xml_Java_Xml_Soap_Axis - Fatal编程技术网

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

Java 轴1:如何记录请求和响应xml,java,xml,soap,axis,Java,Xml,Soap,Axis,我正在使用Axis1.4并从wsdl生成java客户机。 我正在寻找一个很好的工作示例,它显示了如何记录完整的SOAP请求和响应。我确实看到过几个例子,其中使用了handleRequest、handleResponse方法,但我不理解如何从java类中使用/调用这些处理程序来捕获请求/响应 例如,下面是我如何调用服务并获得响应。我试图理解如何在代码中捕获完整的soapxml请求/响应 //locate service FundEditorServiceImplServiceLocator lo

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

例如,下面是我如何调用服务并获得响应。我试图理解如何在代码中捕获完整的soapxml请求/响应

//locate service

FundEditorServiceImplServiceLocator locator = new FundEditorServiceImplServiceLocator();

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

FundInfo response = service.getFundInfo(fundInfoSpec);

您必须使用处理程序

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中获取它,并将内容记录到首选的日志框架中。

此链接具有完整的实现-