是否有一种简单的方法(也就是说:不使用代理)来访问使用JAX-WS参考实现(JDK 1.5及更高版本中包含的那个)发布的Web服务的原始请求/响应XML?能够通过代码实现这一点是我需要做的.只需通过巧妙的日志记录配置将其记录到文件中就可以了.
我知道其他更复杂和完整的框架可能会这样做,但我希望尽可能简单,并且axis,cxf等都会增加我想要避免的大量开销.
谢谢!
我创建了该实现的LoggingHandler实现SOAPHandler<SOAPMessageContext>
它应该在每次handleMessage触发时记录(在我的情况下从不调用它)
MyService service = new MyService();
MyServicePort port = service.getPortType();
Run Code Online (Sandbox Code Playgroud)
现在我试试这个:
BindingProvider bindingProvider = (BindingProvider)port;
bindingProvider.getBinding().getHandlerChain().add(new LoggingHandler());
Run Code Online (Sandbox Code Playgroud)
我没有看到任何请求/响应xml.
你能建议任何解决方案吗?也许有另一种方式来查看输出和请求XML?
我使用JAX-WS作为客户端.我曾经使用以下系统属性来记录所有HTTP请求和响应以进行调试:
com.sun.xml.ws.transport.local.HTTPTransportPipe.dump=true
Run Code Online (Sandbox Code Playgroud)
但是,由于升级到Java 1.7并使用内置的JAX-WS(而不是外部库),此功能已停止工作.
我已经做了很多搜索,以找到1.7中的等效物但是没有运气.有人知道如何记录输出吗?
谢谢你的帮助