如何跟踪webServiceTemplate发送的SOAP请求

Jac*_*ack 8 java eclipse spring soap tcp

我知道可以使用Eclipse TCP/IP监视来跟踪SOAP消息.我试过了,但它无法监控我的本地主机.TCP/IP不会在其控制台中显示localhost.

我可以通过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
Run Code Online (Sandbox Code Playgroud)

有没有办法解决TCP/IP的问题或找到任何替代软件?

eXc*_*eXc 5

编辑:Wireshark是最全面的软件之一(但有点复杂)

我使用过 Fiddler 和 Charlesproxy,同样的功能 - WebSvcs、Rest、SOAP(在 Eclipse 工具中惨遭失败之后)。它们都比 eclipse 优越得多,并且非常易于使用。

这是设置 fiddler 的方法-

  1. 下载并启动 fiddler。
  2. 在 Eclipse 首选项中添加以下 VM 选项

    DproxySet=true -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888

  3. 或者,您也可以通过编程方式进行设置

    System.setProperty("http.proxyHost", "127.0.0.1"); System.setProperty("https.proxyHost", "127.0.0.1"); System.setProperty("http.proxyPort", "8888"); System.setProperty("https.proxyPort", "8888");

  4. 重新启动您的应用程序。(我从来不需要重新启动 Eclipse 本身,但 Eclipse 有时有自己的想法)

就是这样,这是最常见和基本的设置,对于我处理过的 90% 的用例都很有用。注意:Fiddler 默认监听 8888 端口。

如果您的服务器使用 SSL/证书,则需要进一步设置。这是完整文档的链接。

注意:如果您遇到困难,即使在 stackoverflow 上也有很多关于这些设置的内容。

另外,Charlesproxy 也确实不错,但我个人主要使用 fiddler 进行 Webservice 客户端开发。


Ada*_*lik 4

也许您更愿意启用内置的 Spring 日志记录,而不是使用 Eclipse TCP/IP 监控?在这种情况下,您可以启用DEBUGTRACE级别的日志记录

  • org.springframework.ws.client.MessageTracing如果你想登录客户端
  • org.springframework.ws.server.MessageTracing如果你想登录服务器级别

在该DEBUG级别上,仅记录有效负载根元素;在该TRACE级别上,显示整个消息内容。有关详细信息和 Log4J 配置示例,请参阅Spring 文档。

或者,您可以配置 aPayloadLoggingInterceptorSoapEnvelopeLoggingInterceptor。你beans.xml可以这样做:

<sws:interceptors>
    <bean class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor"/>
</sws:interceptors>
Run Code Online (Sandbox Code Playgroud)

有关该解决方案的更多信息请参见此处(第 5.5.2.1 节)

请注意,Spring 使用 Commons-Logging 外观进行日志记录,因此您需要一个实际的日志框架来查看日志,例如。Log4J。