2

私は Web サービスが初めてで、いくつかのチュートリアルを試しました。しかし、HTTPS セキュア SOAP Web サービスにアクセスしようとすると、パトロールに出くわします。WSDLプロバイダーから復活させたログイン/パスワードを使用して、ブラウザーと Netbeans でアクセスできます。

Netbeans は (認証を介して) サービス/スキーマ クラスを生成し、Glassfish 3.1.2 でクライアントを実行しています。サービスにアクセスするためのサーブレットを追加しました。しかし、サービスにアクセスしようとすると、HTTP 応答コード: 401 (=Unauthorized) とWSDL. サービスは に接続しHTTPSますが、エラーは を示していますHTTP

Web サービスにアクセスするためのユーザー名/パスワードを追加する正しい方法は何ですか?

サーブレットのサービス プロバイダー

private static LogicalModel pullpullEnterpriseService() {
    pullEnterpriseService service = new pullEnterpriseService();        
    ClientPullSoapBinding port = service.getClientPullSoapBinding();        

    BindingProvider prov = ((BindingProvider)port);
    prov.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "myuser");
    prov.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "mypassword");

    return port.getDataModel();
}

SOAPヘッダーにユーザー/パスワードを提供しようとしましたが、同じ結果になりました

    ...
    Map<String, Object> req_ctx = ((BindingProvider)port).getRequestContext();        

    Map<String, List<String>> headers = new HashMap<String, List<String>>();
    headers.put("Username", Collections.singletonList("myuser"));
    headers.put("Password", Collections.singletonList("mypassword"));
    req_ctx.put(MessageContext.HTTP_REQUEST_HEADERS, headers);
    ...

これらの投稿を見ましたが、問題は解決しません。

Java JAX-WS を使用して SOAP ヘッダーを追加する方法

http://www.mkyong.com/webservices/jax-ws/application-authentication-with-jax-ws/

4

1 に答える 1

4

プロジェクトにWSDLをローカルに保存してみることができます。

Java6およびJAX-WS-Wiki-Confluenceを使用したWebサービスの利用の例を参照してください。

次に、質問の最初のコードのように、「エンドポイントアドレスとHTTP基本認証の指定」セクションの方法を使用できます。

これがお役に立てば幸いです。

于 2013-01-08T18:20:42.737 に答える