Как можно добавить пользовательские заголовки SOAP к запросу? - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь вызвать веб-сервис, но не могу понять, как добавить заголовки 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?
...