いくつかのWebサービスを利用するためのスタンドアロンクライアントを作成しようとしています。ユーザー名とパスワードをSOAPヘッダーに追加する必要があります。次のようにクレデンシャルを追加してみました。
OTSWebSvcsService service = new OTSWebSvcsService();
OTSWebSvcs port = service.getOTSWebSvcs();
BindingProvider prov = (BindingProvider)port;
prov.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "myusername");
prov.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "mypassword");
...
サービスのメソッドを呼び出すと、次の例外が発生します。
com.ibm.wsspi.wssecurity.SoapSecurityException: WSEC5048E: One of "SOAP Header" elements required.
私は何が間違っているのですか?これらのプロパティをSOAPヘッダーに追加するにはどうすればよいですか?
編集:JDK6に含まれているJAX-WS2.1を使用していました。現在、JAX-WS2.2を使用しています。次の例外が発生します。
com.ibm.wsspi.wssecurity.SoapSecurityException: WSEC5509E: A security token whose type is [http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken] is required.
このトークンを作成するにはどうすればよいですか?