我使用 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。这段代码有什么问题?
最佳答案
要在 Eclipse 上的 jetty 中调试 SOAP 请求和响应,您可以执行以下操作。
- 在项目资源管理器中选择您的项目并右键单击它。
- 在“运行方式”下,点击“运行配置”
- 您的应用程序应该已显示为 Jetty Web 应用程序,并且项目名称将列在 Jetty Web 应用程序下方。在参数选项卡上,将以下内容添加到 JVM 参数部分
-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
- 单击“运行”,您的应用程序现在与网络服务进行的任何交互都将被记录
这是使用一个动态 Web 项目进行测试的,该项目有一个 Servlet,该 Servlet 在加载 Servlet 时调用 Web 服务。
关于java - 无法记录 JaxWs 客户端 xml 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50048190/