我正在使用基于java的工具,其中包含用于访问Web服务的jaxws-rt-2.1.4.jar。我可以成功访问https Web服务并获得正确的结果,但我希望在检索wsdl并在Fiddler中调用服务时看到https请求和响应。
JVM参数包括以下内容:
-DproxySet=true -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888
-Djavax.net.ssl.trustStore=C:\test\xxx.jks -Djavax.net.ssl.trustStorePassword=pw
密钥库包含访问Web服务所需的证书,这可以正常工作。代理设置指向Fiddler所以我希望不仅可以看到工具前端(托管在http://localhost:8080上)的http请求+响应,还可以启动调用Web服务的作业,还可以看到https请求+响应。
我用于检索WSDL并调用服务的代码是
url = "https://www.eway.com.au/gateway/rebill/test/manageRebill_test.asmx?wsdl"
Definition definition = WSDLFactory.newInstance().newWSDLReader().readWSDL(url);
... other code creating the envelopeXML ...
URL wsdlLocation = new URL(url);
Source result =
Service.create(wsdlLocation, serviceQName).createDispatch(
portQName,
Source.class,
Service.Mode.MESSAGE).invoke(new StreamSource(new StringReader(envelopeXML))));
如果网址是http http://www.webservicex.net/periodictable.asmx?wsdl
之类的网址,我会在Fiddler中看到请求+回复。
在我的设置中缺少哪些将在Fiddler中显示https请求+响应以进行WSDL检索和服务调用?也许它需要额外的或不同的JVM设置?
或者它是证书问题 - 我是否必须向Fiddler提供证书并让Fiddler根据它颁发证书,该证书在密钥库中使用而不是原始证书?
答案 0 :(得分:0)
好吧这对我来说应该是显而易见的 - 但是再一次没有观众看到它:-)
我需要添加以下JVM参数:
-DproxySet=true -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8888
这样,Fiddler就会捕获https请求+响应。