私は 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/