首页 > 解决方案 > 替换 Apache CXF 3.1.16 版中缺少的 org.apache.cxf.helpers.DOMUtils.writeXml(Node n, OutputStream os)

问题描述

我正在从迁移JBoss EAP 6.4EAP 7.1. 我已将 Apache CXF 从 2.7.14 更新到 3.1.16,但现在我错过了该DOMUtils.writeXml(Node n, OutputStream os)方法。在这种情况下更换它的最佳方法是什么?

SOAPMessage soapMessage = message.getContent(SOAPMessage.class);
SOAPBody env = soapMessage.getSOAPPart().getEnvelope().getBody();
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
DOMUtils.writeXml(env, baos);
String soapBody = baos.toString();

标签: javasoapjbosscxf

解决方案


我已经替换DOMUtils.writeXml(Node n, OutputStream os)使用javax.xml.transform.TransformerFactory

SOAPMessage soapMessage = message.getContent(SOAPMessage.class);
SOAPBody env = message.getSOAPPart().getEnvelope().getBody();
javax.xml.transform.dom.DOMSource source = new javax.xml.transform.dom.DOMSource(env);
StringWriter stringResult = new StringWriter();
javax.xml.transform.TransformerFactory.newInstance().newTransformer().transform(source, new StreamResult(stringResult));
String soapBody = stringResult.toString();

推荐阅读