出于日志记录的目的,我需要获取 SOAP 请求和 SOAP 响应的内容。一般来说,我有两种选择:
扩展部分 Axis API (BasicHandler) 并创建一个拦截器,它将为我记录所有内容。
或者我可以“手动”记录日志,即仅将 Axis 的实用程序用作客户端 - 不进行扩展。
由于某些原因,项目的方法指向我手动实现日志记录。到目前为止,我设法得到这样的 SOAP 响应:
private void getSOAPasString(Call call) {
try {
MessageContext context = call.getMessageContext();
SOAPMessage message = context.getMessage();
// Create transformer
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tf;
tf = tff.newTransformer();
// Get reply content
Source sc = message.getSOAPPart().getContent();
// Set output transformation
StreamResult result = new StreamResult(System.out);
tf.transform(sc, result);
System.out.println(result);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println();
}
但我还没有设法得到请求消息 - 你能帮我吗?是否可以获得请求 SOAP 消息?如何?