【问题标题】:Axis 1 : How to log Request and Response xml轴 1:如何记录请求和响应 xml
【发布时间】:2023-03-15 16:40:01
【问题描述】:

我正在研究 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);

【问题讨论】:

标签: java xml soap axis


【解决方案1】:

您必须使用处理程序。

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 中获取)并将内容记录到您喜欢的日志框架中。

【讨论】:

    猜你喜欢
    • 2019-01-10
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多