我在MAC OSX 10.7.4上使用WSO2 ESB 4.0.3和Java 6。我还安装了数据服务功能。
在典型的场景中,我有一个客户端调用的代理服务,我将请求传递给数据服务。现在,如果我从数据服务返回到代理的FAULT消息,我如何检查代理服务是否来自数据服务的响应是故障还是正常的有效响应?
目前我在代理服务的后果中使用了以下过滤器中介逻辑
<filter xpath="get-property('FAULT')">
<then>
<log category="ERROR" level="custom" separator=",">
<property name="OWCHECK-faultMessage" value="TQS_OWCHECK - Received Fault From OWCHECK Data Service !!!!"/>
<property expression="$body" name="Fault-I-Got-Is"/>
<property name="OWCHECK-Forwading-Error" value="TQS_OWCHECK - Forwarding the Fault to Error Handler !!!!"/>
</log>
<else>
<xslt key="conf:/tqs/owcheck/proxy-output-transform.xslt"/>
<log category="INFO" level="custom" separator=",">
<property name="ValidResponse" value="TQS_OWCHECK - Sending Valid Response Back."/>
</log>
<send/>
</else>
</filter>
但是,当axis2具有NIO发送器&amp;时,检查“FAULT”属性的这种逻辑是有效的。 axis2.xml中的接收器。
如果我切换接收器&amp; ax2.xml中的发送者从NIO到标准servlet one(org.wso2.carbon.core.transports.http.HttpTransportListener / org.wso2.carbon.core.transports.http.HttpTransportListener)我没有得到“FAULT”属性集我的错误处理不起作用。
是否有一种标准方法可以检查从一个代理服务到另一个代理服务的响应或从数据服务到代理的响应是否为FAULT?我正在寻找一些独立于传输发送器和接收器的东西,至少是HTTP的。
请帮忙。 谢谢 作者Abhijit
这不是很好的文档我相信没有样本谈论如何处理从数据服务到代理服务的错误,或者我错过了什么?
如果我知道处理来自数据服务以及从一个代理到另一个代理服务的错误的最佳实践,我将不胜感激。
请帮忙。这是非常有声望的公司的大项目。
答案 0 :(得分:0)
我认为您需要检查soap body元素是否有soap:fault消息。你可以使用带有一些xpath表达式的过滤器中介来检查它。