我正在使用 Spring-WS 和 WebServiceTemplate 来调用 SOAP WebService。目前,我在更新 SOAP 标头时遇到问题。
以下是 SOAP 请求的完整结构:
<SOAP:envlope>
<SOAP:Header>
<Security>
<username>?</username>
<password>?</password>
</Security>
<MessageData>
<ClientIP>?</ClientIP>
</MessageData>
</SOAP:Header>
<SOAP:Body>
<Login/>
</SOAP:Body>
</SOAP:envlope>
如上所示,我需要在 Header 中包含 2 个元素。我有以下代码来更新 WebServiceTemplate 的 SOAP 标头
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.transform(new StringSource(soapHeaderStr), ((SoapMessage) message).getSoapHeader().getResult());
但是当我尝试使用两个元素(字符串)更新标头时收到以下错误消息:
SOAPHeaderString
<Security>
<username>?</username>
<password>?</password>
</Security>
<MessageData>
<ClientIP>?</ClientIP>
</MessageData>
错误
[Fatal Error] :1:197: The markup in the document following the root element must be well-formed.
ERROR: 'The markup in the document following the root element must be well-formed.'
Security
原因是和元素没有根元素MessageData
,它不应该是。
请帮助我在这种情况下如何更新标题?
谢谢