无法记录JaxWs客户端xml消息

时间:2018-04-26 16:44:07

标签: java soap jax-ws

我使用wsimport(版本" 2.2.9")从WSDL生成了一个SOAP客户端,并且我在Java 8应用程序中使用它。

我想跟踪客户发送/接收的XML消息,但我找不到可行的解决方案......

我尝试以这种方式使用this approach

public class TestClass {
    public static void main(String[] args) {
        System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true");
        System.setProperty("com.sun.xml.ws.transport.http.HttpAdapter.dump", "true");
        System.setProperty("com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump", "true");
        System.setProperty("com.sun.xml.internal.ws.transport.http.HttpAdapter.dump", "true");


        WSService wsService = new WSService();
        WSSoap soapService = wsService.getWSSoap();
        ServiceResponse response = soapService.callServiceMethod();
    }
}

请求正确执行,但我找不到标准输出上的任何XML跟踪。这段代码有什么问题?

1 个答案:

答案 0 :(得分:0)

要在eclipse上调试jetty中的soap请求和响应,您可以执行以下操作。

  1. 在项目资源管理器中选择您的项目并右键单击它。
  2. 在“运行方式”下,单击“运行配置”
  3. 您的应用应该已经显示为Jetty Webapp,项目名称将列在Jetty Webapp下。在arguments选项卡上,将以下内容添加到JVM arguments部分
    -Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true
    -Dcom.sun.xml.ws.transport.http.HttpAdapter.dump=true
    -Dcom.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump=true
    -Dcom.sun.xml.internal.ws.transport.http.HttpAdapter.dump=true
  4. 单击“运行”,将记录您的应用程序现在与Web服务进行的任何交互
  5. 这是通过一个动态Web项目测试的,该项目有一个servlet,它在加载servlet时调用webservice。

    设置的屏幕截图: enter image description here