4
我試圖創建具有以下結構的SOAP消息:SOAP體有兩個元素
<SOAP:Envelope>
<SOAP:Header/>
<SOAP:Body>
<Item1/>
<Item2/>
</SOAP:Body>
</SOAP:Envelope>
我使用的是WebServiceMessageCallback得到上面的格式,但是當我嘗試用新的變換身體源,其中源具有上述格式:
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(source, soapBody.getPayloadResult());
我得到以下錯誤:
[Fatal Error] :1:157: 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.'
Exception in thread "main" org.springframework.ws.client.WebServiceTransformerException:Transformation error: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 157; The markup in the document following the root element must be well-formed.; nested exception is javax.xml.transform.TransformerException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 157; The markup in the document following the root element must be well-formed.
我的理解是,這個錯誤告訴我,主體不是格式良好的XML,因爲它沒有單個根元素。然而,這正是我所需要的服務,我正在發送信息以期望上述結構。
有沒有辦法解決這個問題?謝謝你的幫助。
編輯: 我要指出,我所看到的Spring Update SOAP Header with Two Elements,這正是我試圖做的,但在頭而不是。我已經嘗試過使用虛擬根的方法,但是我不確定如何在轉換後刪除虛擬根,就像他提到的一樣。我沒有足夠的代表評論他的答案找出...