我们正在通过在TomEE Plus上运行的Web应用程序使用JAX-WS
网络服务。它使用Apache CXF
实现与Web服务进行交互。
我们希望记录作为webservice调用的一部分发送和接收的请求和响应XML。有很多例子可以帮助我们记录完整请求并回复我们使用Apache CXF
的原因。
但是,我们的情况是不应该记录完整的请求XML,因为其中有一些敏感信息。我们正在修改SOAPEnvelope
以删除负责记录它们的SOAPHandler
中的敏感信息。
要进行打印,是否有可用的库帮助我们打印完整的XML数据?
在IBM WebSphere中,JAX-WS实现(不确定它是哪一个)只能使用SOAPEnvelope
方法打印toString()
。在尝试null
的{{1}}时,CXF返回toString()
的位置。
答案 0 :(得分:0)
SOAPMessage message = messageContext.getMessage();
StringWriter sw = new StringWriter();
Transformer transformer = transformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
transformer.transform(new DOMSource(message.getSOAPPart()), new StreamResult(sw));
logger.info(sw.toString());
的答案