我有一个 Web 应用程序,它在 Tomcat6 内部运行并通过 HTTPS 将 SOAP 消息发送到某个外部系统。
我想拦截这些消息。
为了做到这一点,我在 Tools -> Fiddler options 对话框中启用了 HTTPS 捕获。
重新启动 Fiddler 后,我可以看到对多个主机(如 Google、Evernote)的 HTTPS 请求,但看不到对我的 Java 应用程序与之通信的外部系统的 HTTPS 请求。
然后,我将 JVM 选项
-Dhtttps.proxyHost=ipv4.fiddler -Dhttps.proxyPort=80
添加到我的启动配置中并重新启动应用程序。同样,Fiddler 没有捕获任何 SOAP 请求。
我可以做什么来查看 SOAP 消息(使用 Fiddler 或其他工具)?
更新 1 (22.10.2013 12:35 MSK): 当我将 JVM 参数更改为
-Dhttps.proxyHost=ipv4.fiddler -Dhttps.proxyPort=80 -DproxySet=true -DproxyHost=ipv4.fiddler -DproxyPort=80
时,发送请求时出现异常 com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.UnknownHostException: ipv4.fiddler
。
正确的 JVM 参数是:
-Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8888 -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888
。