我创建了一个类来拦截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

有什么提示吗?

最佳答案

您所看到的是SOAPMessage的toString。您可能必须查找javadocs以查看是否可以从Oracle的SOAPMessage获取SOAPEnvelope,并且其中应包含传入/传出的SOAP消息。

编辑:请检查this中的getSoapHeader()和getSoapBody()以解构 SOAP 消息。对于Oracle的SOAPMessage包装器,您可能必须弄清楚相同的情况。

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

10-10 11:53