java - 替换 Apache CXF 3.1.16 版中缺少的 org.apache.cxf.helpers.DOMUtils.writeXml(Node n, OutputStream os)
问题描述
我正在从迁移JBoss EAP 6.4
到EAP 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();
解决方案
我已经替换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();
推荐阅读
- node.js - 安装 node-sass --save-dev 时出现错误 404
- java - JPA,Composite Key 由外键和表列成员组成
- javascript - 如何将我的初始状态放入我的减速器文件中?
- javascript - jQuery .html() 函数导致 CWE-80:Veracode 中网页中与脚本相关的 HTML 标记的不正确中和(基本 XSS)警告
- r - 如何使用 r purrr:map 创建多个相同的对象(例如数据框)
- c# - 转换为 3D 后,速度反射不再起作用
- php - Laravel 控制器类型提示
- infragistics - 将 Infragistics dll 从 vesrion 11.1 升级到 18.1
- ios - 如何像选择器一样使用表格视图控制器
- reactjs - react-emotion 和外部 css(例如 bootstrap)类的组合