0

私はここでアイデアがないと思います。

SSL証明書を持つJavaでWebサービスを使用しようとしています。

証明書を追加したキーストア ファイルを作成します。ファイルは私のプロジェクトフォルダーにあります。

私はそれを使用してインポートしました:

System.setProperty("javax.net.ssl.keyStore", "folder\\keystore.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "SECRET");

ファイルに間違ったパスを指定すると、システム プロパティの設定時ではなく、WS の呼び出し時にアプリケーションが例外をスローするため、Web サービス呼び出しはキーストアをチェックするようです。

とにかく、キーストアファイルへの正しいパスを指定すると、私はまだ取得します

AxisFault faultCode: {http://xml.apache.org/axis/}HTTP faultSubcode: faultString: (401)Authorization Required

これが機能する前に、CAを信頼する必要があると誰かが私に言いました。

どうすればいいですか?

4

1 に答える 1

1

私はそれを考え出した。どうやら、サービスは HTTP 基本認証を使用しています。

Axis が生成した (org.apache.axis.client.stub を拡張する) スタブには、コンストラクターで次の 2 行が必要です。

((org.apache.axis.client.Stub) this)._setProperty(org.apache.axis.client.Call.USERNAME_PROPERTY, "HTTPUSER");
((org.apache.axis.client.Stub) this)._setProperty(org.apache.axis.client.Call.PASSWORD_PROPERTY, "HTTPPW");

助けてくれてありがとう。

よろしく

于 2012-10-22T13:34:37.273 に答える