Spring-WS SOAP将子元素添加到标头中

时间:2015-07-01 00:09:32

标签: java spring web-services soap spring-ws

如何将子元素添加到SOAP标头中。我正在使用2008/9发布的旧版Spring 1.5s。

  SoapHeader header = soapMsgResponse.getSoapHeader();
  SoapHeaderElement loggingHeader = header.addHeaderElement(new QName("https://svn.some.schema/logging.xsd", "LoggingHeader", "NS1"));
  //SoapElement businessId = loggingHeader.addAttribute(new QName(), "");

我不知道上面的行如何会是这样的。

我想要像

这样的东西
<soap:Header>
    <NS1:LoggingHeader xmlns:NS1="https://svn.some.schema/logging.xsd">
        <NS1:BusinessId>ABCDEGED</NS1:BusinessId>
    </NS1:LoggingHeader>
</soap:Header>

1 个答案:

答案 0 :(得分:0)

在此link

中找到此信息
  

您实际上可以将消息强制转换为给您的SOAPMessage   完全访问所有SAAJ apis。从那里你可以建造任何东西   你想要的标题内的元素。

所以在类型转换之后你应该可以使用类似的东西

SaajSoapMessage soapMessage = (SaajSoapMessage) message;
SoapHeaderElement messageId =  soapMessage.getSoapHeader().addHeaderElement(new QName("https://svn.some.schema/logging.xsd", "LoggingHeader", "NS1"));
messageId.setText("NS1:abcdef1234");