我有一个中间件可以接受SOAP请求,也可以发出SOAP请求。
我编写了自定义拦截器来拦截入站和出站请求,以便将它们记录在数据库中。
问题在于,当发出SOAP请求时,InBound拦截器会拦截传入的请求,当我的模块发出SOAP请求时,它会被Outbound拦截器拦截,这是正确的。
但是我想识别传入的SOAP消息,因为它是SOAP请求或SOAP响应,因此我可以正确记录SOAP请求和响应。
有没有办法将SOAP消息标识为请求或响应?
答案 0 :(得分:1)
如果存在针对SOAP调用的POST方法请求方法
,您始终可以获取标头并查找TCP标头答案 1 :(得分: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
}
}