Я пытаюсь создать отдельного клиента для использования некоторых веб-сервисов. Я должен добавить свое имя пользователя и пароль в заголовок 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?
Отредактировано: Я использовал JAX-WS 2.1, включенный в JDK6. Теперь я использую JAX-WS 2.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.
Как мне создать этот токен?