0

我有一个可以接受 SOAP 请求并且可以发出 SOAP 请求的中间件。

我已经编写了自定义拦截器来拦截入站和出站请求以将它们记录到数据库中。

问题是当发出 SOAP 请求时,传入请求被 InBound 拦截器拦截,而当我的模块发出 SOAP 请求时,它被 Outbound 拦截器拦截,这是正确的。

但我想将传入的 SOAP 消息标识为天气,它是 SOAP 请求或 SOAP 响应,以便我可以正确记录 SOAP 请求和响应。

有没有办法将 SOAP 消息识别为请求或响应?

4

2 回答 2

1

您也可以使用 CXF MessageUtils类来做到这一点。例如:

boolean requestor = MessageUtils.isRequestor(message);
boolean outbound = MessageUtils.isOutbound(message);
if (requestor) {
    if (!outbound) {
        //This is your RESPONSE message
    }
} else {
    if (!outbound) {
        //This is your REQUEST message
    }
}
于 2013-05-16T14:57:16.140 回答
1

如果 SOAP 调用有一个说 POST 的请求方法,您总是可以获取标头并查找 TCP 标头

于 2013-05-13T20:26:21.020 回答