可以从整个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