3

HTTPS Java Web サービスがあり、.NET [.NET 2.0 スタイル クライアント / WCF クライアント] で Web サービスにアクセスしようとしています。WS からこのエラーが返されます。

「HTTP ステータス 401 - この要求には HTTP 認証 () が必要です。」

この WS のセキュリティの種類を確認するにはどうすればよいですか? SSL の他に、WS に送信するためのユーザー名とパスワードがあります。これはメッセージ認証の一部だと思います。

Java クライアントは正常に通信しているように見えますが、興味深い行はほとんどありません。

        System.setProperty("javax.net.ssl.keyStorePassword", new String(jsseKeyStorePassword));
        System.setProperty("javax.net.ssl.trustStorePassword", new String(jsseTrustStorePassword));

----------------------------------------------

  BindingProvider bindingProvider = (BindingProvider) port;
        bindingProvider.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, username);
        bindingProvider.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, new String(password));

助けていただければ幸いです。

4

2 に答える 2

2

簡単に言えば、私が解決しなければならなかった2つの問題、

  1. HTTP ステータス 401 - このリクエストには HTTP 認証が必要です ()

    app.config の VS 生成された customeBinding で、認証スキーマを Basic に変更しました

  2. HTTP/1.1 505 HTTP バージョンがサポートされていません

    Expect: 100-continue SOAP ヘッダーを削除します。この行を追加しますServicePointManager.Expect100Continue = false;。問題の詳細はこちら

ここで長い話http://www.irasenthil.com/2010/10/wcf-client-to-Java-web-service.html

于 2010-10-19T19:40:41.180 に答える
0

Java WS には、いくつかのキー ストアに格納されたサーバーとルート証明書が必要なようです。jsseKeyStorePasswordおよびjsseTrustStorePassword変数で利用できるように見える証明書を取得するには、これらのキー ストアへのパスワードを知っている必要があります。

また、Windows Communication Foundation を使用するには、少なくとも .NET Framework 3.0 を使用する必要があります。

于 2010-10-14T19:06:52.783 に答える