0

我在 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 在axis2.xml 中有NIO 发送器和接收器时,这种检查“FAULT”属性的逻辑有效。

如果我将axis2.xml中的接收器和发送器从NIO切换到标准servlet(org.wso2.carbon.core.transports.http.HttpTransportListener / org.wso2.carbon.core.transports.http.HttpTransportListener),我会怎么做没有设置“FAULT”属性,我的错误处理不起作用。

是否有一种标准方法可以检查一个代理服务对另一个代理服务的响应或数据服务对代理的响应是否为 FAULT?我正在寻找独立于传输发送者和接收者的东西,至少是 HTTP 的。

请帮忙。谢谢阿比吉特

我相信这不是一个好的文档,其中没有一个样本谈论如何处理从数据服务到代理服务的故障,或者我错过了什么?

如果我知道处理来自数据服务以及从一个代理到另一个代理服务的错误的最佳实践,我将不胜感激。

请帮忙。这是非常有声望的公司的大项目。

4

1 回答 1

0

我认为您需要检查soap body 元素是否有soap:fault 消息。您可以使用带有一些 xpath 表达式的过滤器中介来检查它。

于 2012-07-23T05:40:11.363 回答