Типичный клиент SOAP Java JAX-WS с использованием JAX-WS может бытьКак добавить SOAP-заголовок с помощью запроса
FooService service = new FooService();
FooPort port = service.getFooPort();
FooPayload payload = new FooPayload();
payload.setHatSize(3);
payload.setAlias("The Hat");
...
port.processRequest(payload);
Это создает содержание запроса HTTP-то вроде
<?xml ... ?>
<S:Envelope xmlns:S="http://...soap-envelope">
<S:Body>
<!-- payload -->
</S:Body>
</S:Envelope>
Манипулируя аргументы вызова port.processRequest() вы можете влиять только на часть «полезной нагрузки». Вы не можете повлиять на внешнюю часть XML-сообщения.
Я хочу, чтобы вставить заголовок SOAP непосредственно перед SOAP Body
<S:Header>
<X:Security xmlns:X="http://...wsssecurity...>
<X:BinarySecurityToken>kjh...897=</X:BinarySecurityToken>
</X:Security>
</S:Header>
Как я могу это сделать?
Описывает ли WSDL заголовки? Если да, то не JAX-WS генерирует код для их добавления? –