0

WSConsumeを使用して WSDL ファイルから Web サービス クライアント スタブを生成しました。次に、生成されたスタブをクライアント コードで使用して、データを Web サービスに送信します。

これはすべてうまくいきます。つまり、クライアントは Web サービスと通信し、データとすべてを交換できます。

私の問題は、クライアントがプロキシの背後に展開されるとすぐに始まります。私もこれで大部分が整理されました。クライアントの起動時に次の JVM プロパティを設定します。

http.proxyHost、http.proxyPort、https.proxyHost、および https.proxyPort

これは提案されていないことを理解しており、いずれ ProxySelector に移行する予定です。しかし、今のところ、プロキシが認証を必要としない限り、これは機能します。

認証の問題を解決するために、デフォルトをオーバーライドしましたPasswordAuthentication

Authenticator.setDefault(new Authenticator() {
    public PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(httpsProxyUser, httpsProxyPassword.toCharArray());
    }
});

ほとんどの場合、これもうまく機能します。これが一般的にNTLM認証と呼ばれるものだと理解しています。

私の悪夢は、プロキシが基本認証を期待しているときに始まります。私がこれまでに理解したことから、この認証メカニズムが機能するにはProxy-Authorization、リクエスト プロパティにヘッダーを設定する必要があるということです。HTTP Client オブジェクトにアクセスできれば、これも簡単に実行できます。

しかし、wsconsume を介して生成されたスタブを使用する場合、これを行うにはどうすればよいでしょうか?

4

1 に答える 1