0
votes

I am using WSO2 ESB 4.0.3 with Java 6 on MAC OSX 10.7.4. I have also installed Data Services Features.

In the typical scenario I have one proxy service which the client calls and I pass one the request to Data Service. Now if I have FAULT message from the Data service back to proxy how do I check in proxy service whether the response from Data Service is Fault or normal valid response?

Currently I am using following filter mediator logic in outsequence of proxy service

         <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>

But this logic of checking the "FAULT" property works when axis2 has NIO senders & receivers in axis2.xml.

How ever if I switch the receivers & senders in axis2.xml from NIO to standard servlet one's (org.wso2.carbon.core.transports.http.HttpTransportListener / org.wso2.carbon.core.transports.http.HttpTransportListener) I do not get the "FAULT" property set and my error handling does not work.

Is there a standard way of checking if the response from one proxy service to another or response from data service to proxy is FAULT or not? I am looking for something which is independent of transport senders and receivers, at least HTTP ones.

Please help. thanks Abhijit

It is not good documentation I believe where none of the samples talk about how to handle the faults from Data service to Proxy service or am I missing something?

I would be thankful if I know the best practices to handle the errors from Data service as well as from one proxy to another proxy service.

Please help. This is big project at very prestigious company.

1

1 Answers

0
votes

I think you need to check whether the soap body element has a soap:fault message or not. you can use the filter mediator with some xpath expression to check that.