2

WebサービスのクエリにApacheAxis1.4を使用していることを理解しています

私はWSDLファイルを与えられました、そしてそれは拡張するXXXXImplServiceLocatorクラスを生成し、拡張org.apache.axis.client.Serviceする生成されたインターフェースを実装しますjavax.xml.rpc.Service

私の「ビジネスコード」はgetXXXXImplPort(URL)、新しいXXXXImplServiceLocatorインスタンスでメソッドを呼び出してから、次のように呼び出します。

((Stub) port).setTimeout(timeout);
((Stub) port).setUsername(username);
((Stub) port).setPassword(password);

Stubですorg.apache.axis.client.Stub

これらのパラメータを設定した後getYYY()、リモートサービスによって公開されているサービスの1つへのクエリを表し、結果とともに「ドメイン」オブジェクトを返すメソッドを呼び出すだけです。

問題は、このサービスでプリエンプティブ認証を使用する必要があることです。soapUIを介してクエリを実行しようとしましたが、プリエンプティブ認証モードを設定しないと結果が得られません。

そのモードの設定方法をグーグルで調べてみましたが、何も見つかりませんでした。彼らが言うのは、Apache HttpClientを使用したプリエンプティブ認証だけです。これは、Axisによって非常によく「埋め込まれる」か、使用される可能性がありますが、これを組み合わせる方法は実際にはわかりませんでした。

これと相互作用する私が持っている唯一のコードServiceLocatorは、初期設定とその後のクエリです。

そのプリエンプティブ認証モードを設定するにはどうすればよいですか?私は何かが足りないのですか?この問題を解決できないように、私は何を理解していないのですか?

においはかなり些細な問題のように聞こえますが、これをよく理解していないという事実が問題の解決を妨げているのかもしれません。

よろしくお願いします、ええ:)

4

2 に答える 2

0

Apache Rampartモジュールを使用してWS Securityを実装できます。サービス レベルでプラグインし、ユーザー名/トークン、X.509 認証などの WS-Security をすべて処理します。

些細なことではありませんが、それほど難しいことでもありません。ここでは、WSS を使用して Axis サーバーが Oracle SOA サーバーと通信するようにしました。

于 2012-12-04T22:04:24.180 に答える