相关疑难解决方法(0)

在Spring-WS中将子元素添加到自定义SOAP标头中

我正在使用Spring-WS调用SOAP Web服务.有问题的webservice要求我在SOAP头中传递一些信息,如下所示:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header>
      <CustomHeaderElement>
         <clientID>xyz</clientID>
         <wsdlVersion>1.0</wsdlVersion>
         <serviceType>ExampleService_v1</serviceType>
      </CustomHeaderElement>
   </soapenv:Header>
   <soapenv:Body>
   ...
   </soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

我已经弄清楚如何使用顶级CustomHeaderElement,但我没有在Spring-WS API中看到任何允许我添加子元素的内容.这是我到目前为止:

WebServiceTemplate template = ...;

template.marshalSendAndReceive(request, new WebServiceMessageCallback(){
    public void doWithMessage(WebServiceMessage message) throws IOException, TransformerException{
        SoapMessage soapMessage = (SoapMessage)message;
        SoapHeader soapHeader = soapMessage.getSoapHeader();
        QName qName = new QName("CustomHeaderElement");
        SOAPHeaderElement headerElement = soapHeader.addHeaderElement(qName);
        //would like to do something like headerElement.addChild(clientIdNode);
    }
});
Run Code Online (Sandbox Code Playgroud)

问题是headerElement似乎没有暴露任何实际添加子的方法.我知道我可以添加一个属性,但这不是我需要的服务调用.有谁知道如何将必要的子元素添加到我的自定义标题?

soap spring-ws header saaj

15
推荐指数
2
解决办法
2万
查看次数

标签 统计

header ×1

saaj ×1

soap ×1

spring-ws ×1