Great information. now i can take it forward. thanks for sharing it :)


On Sat, Feb 8, 2014 at 7:30 PM, Dushan Abeyruwan <dus...@wso2.com> wrote:

> Hi Kirshantha,
>   Handling fault has two flavors,
>
>    - Handle internal fault such as service EP not available and all the
>    issues related .
>    - Handle Service faults.
>
>
>  Ideally when BE is SOAP and if it returns SOAP fault in order to handle
> such queries we normally append FORCE_ERROR_ON_SOAP_FAULT property, this
> works only of BE return Service faults and when such happen if we need to
> divert such responses to the faultSequence that we have defined.
>    On the other hand if that is RESTful BE,  we do not have a inbuilt
> function  to determine whether its a fault at transport level, so the
> workaround that we normally do is to use the Filter base on the HTTP_SC.
>   If you look at [1] status codes represents 100 series and 200- series
> regards as non faulty responses, and other than that we can determine them
> as faults or defect, to overcome such station when deal with RESTful
> services personally I am using filters i.e
>
> OutSequence ..etc , below logic just evaluates the response and if that
> not falls between 200 series normally you can add your customize faulty
> response logic ..
>
>  <filter source="$axis2:HTTP_SC" regex="^[^2][0-9][0-9]">
>             <then>
>                <log level="custom">
>
>    - can include payload
>       - can setup HTTP_SC to axis2 context
>       - can use <respond> mediator to reply client with error.
>
>                  ..............
>                  ..............
>
>             </then>
>          </filter>
>
>
> [1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
>
>
>
>
>
> On Fri, Feb 7, 2014 at 7:54 PM, Krishantha Dinesh <kr...@krishantha.com>wrote:
>
>> I have used following code to handle error on soap call
>>
>> proxy
>> ==============
>>
>> <faultSequence>
>>             <makefault version="soap11">
>>                 <code xmlns:tns="http://www.w3.org/2003/05/soap-envelope";
>>                     value="get-property('FAULT_CODE')" />
>>                 <reason expression="get-property('ERROR_CODE')" />
>>                 <detail expression="get-property('ERROR_MESSAGE')" />
>>             </makefault>
>>             <send />
>>         </faultSequence>
>>
>> Output
>> ==============
>> <soapenv:Envelope xmlns:soapenv="
>> http://schemas.xmlsoap.org/soap/envelope/";>
>>    <soapenv:Body>
>>       <soapenv:Fault>
>>          <faultcode xmlns:tns="http://www.w3.org/2003/05/soap-envelope
>> ">123456</faultcode>
>>          <faultstring>abc</faultstring>
>>          <detail>xyz</detail>
>>       </soapenv:Fault>
>>    </soapenv:Body>
>> </soapenv:Envelope>
>>
>>
>> I need to know what is the best approach to handle exception on REST
>> calls.
>>
>> i tried to apply same way just for try but it only give ERROR_MESSAGE not
>> another...
>>
>> my expectation is to deliver all exception to client (caller). eg:
>> transport error due to unavailable endpoint.. etc
>>
>>
>> _______________________________________________
>> Dev mailing list
>> Dev@wso2.org
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> Dushan Abeyruwan | Associate Tech Lead
> Integration Technologies Team
> PMC Member Apache Synpase
> WSO2 Inc. http://wso2.com/
> Blog:http://dushansview.blogspot.com/
> Mobile:(0094)713942042
>
>
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to