可以從整個SOAP消息的字符串表示創建SOAPMessage嗎?我試圖做到這一點的原因是我有一個Web服務的SOAP處理程序,用於捕獲SOAP消息。我需要保留Web服務中的整個SOAP消息以發送到另一個組件。現在,Web服務剝離了SOAP信封信息。因此,在處理程序中,我製作了SOAP消息的副本,base64對其進行了編碼,刪除了原始的Body內容,並添加了編碼的字符串。在Web服務中,我試圖解碼正文(編碼的SOAP消息)並將其重構爲SOAPMessage以發送給另一個組件。從整個SOAP消息的字符串XML創建SOAPMessage
10
A
回答
2
我這樣做是分兩步進行的。首先創建一個DOM Document,然後從Document創建SOAPMessage。
50
As per Javadoc,javax.xml.soap.MessageFactory
創建方法預先填充SOAP消息,其中包含必需的對象,如信封,正文,頭部,以確保消息正確無誤。但是,接受消息數據的createMessage
方法的唯一變體將其作爲InputStream
接受。因此需要String
到InputStream
轉換,即從字符串字節創建新的字節流。
爲簡潔起見,這是一個簡化的例子。在應用程序代碼的一個可避免它提取到字段上創建每個方法調用一個工廠/恆定,指定所需SOAP協議版本,不同的字符集,等
private SOAPMessage getSoapMessageFromString(String xml) throws SOAPException, IOException {
MessageFactory factory = MessageFactory.newInstance();
SOAPMessage message = factory.createMessage(new MimeHeaders(), new ByteArrayInputStream(xml.getBytes(Charset.forName("UTF-8"))));
return message;
}
+0
您能否詳細說明您的答案?謝謝。 –
+1
增加了一些更多的解釋,代碼只是爲了簡潔起見。 – tiurin
相關問題
- 1. 添加XML字符串SOAP消息
- 2. 使用SOAP創建XML消息PHP
- 3. 從字符串創建XML
- 4. 從字符串拆分xml消息
- 5. 解析SOAP消息作爲字符串
- 6. 創建SOAP消息體
- 7. 手動創建SOAP消息?
- 8. 從SOAP響應中創建WSDL消息
- 9. 從stdClass對象創建PHP SOAP消息
- 10. 在SOAP消息中發佈XML字符串
- 11. 通過Java從示例XML創建SOAP消息
- 12. 從創建的字符串獲取字符串整數的值
- 13. PHP從字符串創建XML
- 14. 從php中創建XML字符串
- 15. xslt php從字符串創建xml
- 16. XML SOAP創建
- 17. XSLT從SOAP消息正文獲取XML
- 18. 創建XML消息在VB6
- 19. 使用Velocity創建SOAP消息
- 20. 用Java創建和發送SOAP消息
- 21. soapfault:無法創建SOAP消息
- 22. 如何在c#中創建SOAP消息?
- 23. iOS中的SOAP - 從XML中提取多個字符串
- 24. 如何從Java中的字符串創建一個XML對象?
- 25. 從多個整數數組創建一個字符串數組
- 26. 從舊的字符串創建一個新的字符串
- 27. Python數字字符串在XML創建
- 28. 創建XML列的XPath字符串
- 29. 從另一個字符串中創建一個字符串?
- 30. C#從整個字符串中移除整個字符串
可以使用java.xml.soap包創建一條SOAP消息 – ChadNC