如何从Tomcat Java应用程序捕获SOAP消息并发送到外部服务器?

7
我有一个web应用程序,它运行在Tomcat6中,并通过HTTPS发送SOAP消息到某个外部系统。我想拦截这些消息。为此,我在“工具-> Fiddler选项”对话框中启用了HTTPS捕获。重启Fiddler后,我可以看到对几个主机(如Google、Evernote)的HTTPS请求,但没有对我的Java应用程序所连接的外部系统的请求。然后,我向启动配置添加了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”。

1
我不知道所有那些 Fiddler MITM 的事情,但 HTTPS 端口通常是 443,而不是 80。 - user1516873
@user1516873 将JVM选项更改为-Dhttps.proxyHost=ipv4.fiddler -Dhttps.proxyPort=443 -DproxySet=true -DproxyHost=ipv4.fiddler -DproxyPort=80没有帮助(UnknownHostException)。 - Glory to Russia
使用“ipv4.fiddler”作为代理注册是行不通的,因为只有当流量已经通过代理时,该主机名才存在。 - EricLaw
1个回答

10

正确的JVM参数是:-Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8888 -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888


1
它对我不起作用。我添加了http和https代理,但我仍然无法看到任何soap调用,而我可以在tomcat日志中看到它们。 - Arashsoft

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接