0

Webサービスにアクセスするためにjaxws-rt-2.1.4.jarを含むJavaベースのツールを使用しています。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を指しているため、Webサービスを呼び出すジョブを開始 するツールフロントエンド( http:// localhost:8080でホストされている)のhttp request + responseだけでなく、https request+responseも表示されると予想しました。

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))));

URLがhttpの場合、http://www.webservicex.net/periodictable.asmx?wsdlFiddlerにrequests+responsesが表示されます。
FiddlerにWSDL取得とサービス呼び出しのhttpsリクエストとレスポンスを表示するセットアップに欠けているものは何ですか?たぶん、追加または異なるJVM設定が必要ですか?それとも証明書の問題ですか?Fiddlerに証明書を渡して、元のキーストアではなくキーストアで使用される証明書をFiddlerに発行させる必要がありますか?

4

1 に答える 1

0

OK、これは私には明らかだったはずですが、それでも、聴衆の誰もそれを見ませんでした:-)
次のJVMパラメーターを追加する必要がありました。

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

このようにして、Fiddlerはhttpsリクエストとレスポンスをキャッチします。

于 2012-04-09T20:26:24.460 に答える