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 を介して生成されたスタブを使用する場合、これを行うにはどうすればよいでしょうか?