Типичный запрос клиента SOAP с использованием JAX-WS может быть
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
<S:Header>
<X:Security xmlns:X="http://...wsssecurity...>
<X:BinarySecurityToken>kjh...897=</X:BinarySecurityToken>
</X:Security>
</S:Header>
Как мне это сделать?