Я пытаюсь вызвать веб-сервис, но не могу понять, как добавить заголовки SOAP.
Мне предоставили wsdl и поддельный запрос, который должен содержать некоторыеЗаголовки SOAP, такие как:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>XXX</wsse:Username>
</wsse:UsernameToken>
</wsse:Security>
<wsctx:CONTEXT xmlns:wsctx="http://XXX">
<wsctx:USERAREA>
<wsctx:CICS-TOKEN>XXX</wsctx:CICS-TOKEN>
<wsctx:IST>XXX</wsctx:IST>
</wsctx:USERAREA>
</wsctx:CONTEXT>
</soapenv:Header>
<soapenv:Body>
<!-- ... -->
</soapenv:Body>
</soapenv:Envelope>
Я сгенерировал источники, используя org.codehaus.mojo:jaxws-maven-plugin
, и я понимаю, что должен уменьшить свой порт до BindingProvider
или WSBindingProvider
, но тогда как мне создать элемент тегов Security и CONTEXTс вложенной USERAREA?
ANWSCNEGPortType port = service.getANWSCNEGBindingQSPort();
WSBindingProvider provider = (WSBindingProvider) port;
provider.setOutboundHeaders(); // <--- how can I create proper headers?