2014-09-23 3 views
1

Я хотел бы создать следующий XML с помощью cxf и spring мыльных WebServices:Как добавить пользовательский заголовок в запросы cxf soap?

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:key="http://schema.to/WebService"> 
    <soapenv:Header> 
     <key:Signing>asdasdasd</key:Signing> 
    </soapenv:Header> 

Как это можно сделать? Как установить пространство имен и пользовательский элемент тега заголовка?

ответ

4

Используйте следующее в Maven CXF конфигурации:

<extraarg>-exsh</extraarg> 
<extraarg>true</extraarg> 

Это создает метод атрибуты @WebParam(header = true), которые затем могут быть предоставлены в отношении доступа Webservice.

0

Используйте CustomHeaderHandler, который реализует javax.xml.ws.handler.soap.SOAPHandler<SOAPMessageContext> В public boolean handleMessage(SOAPMessageContext soapMsgCtx) используйте следующий код

if (msg.getSOAPPart().getEnvelope().getHeader() == null) { 
    msg.getSOAPPart().getEnvelope().addHeader(); 
} 
msg.getSOAPHeader().addChildElement("Signing", "key").addTextNode("asdasdasd"); 
Смежные вопросы