gpt4 book ai didi

java - 记录 SOAP 消息

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:05:24 25 4
gpt4 key购买 nike

我创建了一个拦截 SOAP 消息交换的请求-响应周期的类,我想记录消息交换。什么是我可以在我的日志文件中记录 SOAP 消息的最佳方法?

我不希望它漂亮地打印在我的日志文件中,但我只想访问并查看请求和响应 SOAP 信封。

我试过这段代码:

public class LogHandler{    
private static final Logger _LOG;
@Override
protected void handleResponse(SOAPMessage message)
logSOAPMessage(message);
}
@Override
protected void handleRequest(SOAPMessage message)
logSOAPMessage(message);
}
private void logSOAPMessage(SOAPMessage message){
_LOG.info(":: Logging SOAP Message :: " + message.toString());
}
}

但没有收到所需的消息。

:: Logging SOAP Message :: oracle.j2ee.ws.saaj.soap.soap11.Message11@715346

有什么提示吗?

最佳答案

如果 messageSOAPMessage 则执行以下操作:

ByteArrayOutputStream bout = new ByteArrayOutputStream();   
message.writeTo(bout);
String msg = bout.toString("UTF-8");

现在 String msg 有 soap 消息,您可以记录它。

在你的例子中:

private void logSOAPMessage(SOAPMessage message){
ByteArrayOutputStream bout = new ByteArrayOutputStream();
message.writeTo(bout);
String msg = bout.toString("UTF-8");
_LOG.info(":: Logging SOAP Message :: " + msg);
}

关于java - 记录 SOAP 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6421627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com