基本的なhttp認証を介してWebサービスにアクセスするにはどうすればよいですか?Webサービスクライアント機能に組み込まれているNetBeansを使用しています。しかし、Webサービスにアクセスしようとすると、401authfailedエラーメッセージで例外が発生します。
正しいユーザー名とパスワードを渡すにはどうすればよいですか?
ありがとうございました!
基本的なhttp認証を介してWebサービスにアクセスするにはどうすればよいですか?Webサービスクライアント機能に組み込まれているNetBeansを使用しています。しかし、Webサービスにアクセスしようとすると、401authfailedエラーメッセージで例外が発生します。
正しいユーザー名とパスワードを渡すにはどうすればよいですか?
ありがとうございました!
BindingProvider または WSBindingProvider クラスを使用して、基本的な http 認証を通じて Web サービスにアクセスできます。コードは次のとおりです。
XxxService service = new XxxService();
Xxx port = service.getXxxPort();
Map<String, Object> reqContext = ((BindingProvider)port).getRequestContext();
reqContext.put(BindingProvider.USERNAME_PROPERTY, "username");
reqContext.put(BindingProvider.PASSWORD_PROPERTY, "password");
独自のオーセンティケーターを提供することもできます。そうすれば、WDSL 自体が基本的な HTTP 認証によって保護されている場合でも機能します。
@WebServiceRef(wsdlLocation = "https://laka/sito?wsdl")
static XxxService service;
public static void main(String[] args) {
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("user", "password".toCharArray());
}
});
service = new XxxService();
Xxx port = service.getXxxPort();
// invoke webservice and print response
XxxResponse resp = port.foo();
System.out.println(resp.toString());
}