Java 如何跟踪webServiceTemplate发送的SOAP请求
我知道可以使用EclipseTCP/IP监控来跟踪SOAP消息。我试过了,但它无法监视我的本地主机。TCP/IP在其控制台中不显示本地主机 我可以通过Java 如何跟踪webServiceTemplate发送的SOAP请求,java,eclipse,spring,soap,tcp,Java,Eclipse,Spring,Soap,Tcp,我知道可以使用EclipseTCP/IP监控来跟踪SOAP消息。我试过了,但它无法监视我的本地主机。TCP/IP在其控制台中不显示本地主机 我可以通过http://localhost:8080/MyApp/ 在TCP/IP配置中,我有以下几点 Local monitoring port 9090 (a random port that I have chosen) Host name: localhost Port: 8080 Type: TCP/IP Timeout:0 有没有办法解决TCP
http://localhost:8080/MyApp/
在TCP/IP配置中,我有以下几点
Local monitoring port 9090 (a random port that I have chosen)
Host name: localhost
Port: 8080
Type: TCP/IP
Timeout:0
有没有办法解决TCP/IP问题或找到其他软件?也许您更愿意启用内置的Spring日志,而不是使用Eclipse TCP/IP监控?在这种情况下,您可以在
调试
或跟踪
级别为
如果您想登录客户端org.springframework.ws.client.MessageTracing
如果要登录到服务器级别org.springframework.ws.server.MessageTracing
DEBUG
级别,只记录有效负载根元素;在跟踪
级别上,显示整个消息内容。有关详细信息和Log4J配置示例,请参阅
或者,您可以配置PayloadLoggingInterceptor
或SoapEnvelopeLoggingInterceptor
。在beans.xml
中,您可以这样做:
<sws:interceptors>
<bean class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor"/>
</sws:interceptors>
关于该解决方案的更多信息(第5.5.2.1节)
请注意,Spring使用Commons Logging facade进行日志记录,因此您需要一个实际的日志框架来查看日志,例如Log4J。通过启用以下系统属性,可以从客户端记录SOAP消息:
System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true");
System.setProperty("com.sun.xml.internal.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.HttpAdapter.dump", "true");
参考:
编辑:是这方面最全面的软件之一(但有点复杂)
我使用了Fiddler和Charlesproxy,用于相同的功能——WebVCS、Rest和SOAP(在Eclipse工具中惨败之后)。它们都比eclipse优越得多,并且非常易于使用
这是你设置小提琴手的方法-
DproxySet=true-Dhttp.proxyHost=127.0.0.1-Dhttp.proxyPort=8888
System.setProperty(“http.proxyHost”、“127.0.0.1”);
System.setProperty(“https.proxyHost”、“127.0.0.1”);
set属性(“http.proxyPort”、“8888”);
System.setProperty(“https.proxyPort”、“8888”)代码>
此外,Charlesproxy也非常好,但我个人使用fiddler主要用于Webservice客户端开发。您可以使用启用环回的wireshark并添加http作为过滤器。这将符合您的目的为
org.springframework.ws.client.MessageTracing
设置跟踪级别日志记录。我会选择Wireshark,因为它是调试SOAP的绝对难以置信的工具。您捕获数据包,在筛选器字段中键入http
,以仅显示http请求/响应(您可以指定src或dst以及大量选项)-右键单击列表项->“跟随TCP流”。或者使用其中一个插件。我使用了wireshark,但它显示的HTTP消息太多了。我知道,这就是为什么我不建议将其作为首选。但是它非常强大,一旦你掌握了它,你可能就不需要任何其他工具了。你试过小提琴吗?