Hi You can setup HTTP_SC in axis2 context set 400 (which represents bad Request)
On Tue, Feb 11, 2014 at 10:42 AM, Krishantha Dinesh <[email protected]>wrote: > Hi Dushan, > Thanks for prompt reply. > I do agree with you. my concern is http response got which client get on > transport headers. > pls refer below > > This is what client get as exception > > <Response xmlns="http://cd-rhettige/services/paypal_lookupSale"> > > <error_code>101503</error_code> > > <error_message>Error connecting to the back end</error_message> > > </Response> > > > ======================================== > this is the raw content. pls pay your attention for http status code > > HTTP/1.1 200 OK > > Authorization: Bearer OQaph7mMZJbvNDJ-8u9ICVm4Q4kkJmNj.w5dQJZ5u8E > > Host: cd-rhettige:8280 > > Accept-Encoding: gzip,deflate > > Content-Type: application/json > > Date: Tue, 11 Feb 2014 05:06:58 GMT > > Server: WSO2-PassThrough-HTTP > > Transfer-Encoding: chunked > > Connection: Keep-Alive > > > > { "error_code":"101503", > > "error_message":"Error connecting to the back end" > > } > > > > On Tue, Feb 11, 2014 at 10:04 AM, Dushan Abeyruwan <[email protected]>wrote: > >> Hi, >> No its wrong, we shouldn't response with 200 OK for exceptions. IMO >> ideal way as I think, to do this by keep the catalog of connector specific >> error code and embedded in the error message and explain those _ _connector >> specific error _ _ catalog in documentation more specifically, and >> returning a generic error with status code to client. >> >> for error catalogs you could refer [1][2] >> [1]http://www.twilio.com/docs/errors/reference >> [2] >> http://www.stormpath.com/blog/spring-mvc-rest-exception-handling-best-practices-part-1 >> e.g >> >> >> >> { >> "status": 404, >> * "code": 40483,* >> "message": "Oops! It looks like that file does not exist.", >> "developerMessage": "File resource for path /uploads/foobar.txt does not >> exist. Please wait 10 minutes until the upload batch completes before >> checking again.", >> "moreInfo": "http://www.mycompany.com/errors/40483" >> } >> >> >> >> On Tue, Feb 11, 2014 at 9:51 AM, Krishantha Dinesh >> <[email protected]>wrote: >> >>> Hi Dushan/Dev >>> I tried ur solution and its work. but i have other question. when it >>> catch FAULT (500 error) on return message of client http code is 200 OK >>> for example let say endpoint is fail the it catch that fault. but in >>> client point of view http respond code of his response is 200 >>> >>> other than 500 client getting correct http response code. the problem >>> may be this is originate by ESB it self than come as response to ESB. btw >>> is there any solution for this. >>> >>> >>> >>> On Sat, Feb 8, 2014 at 7:30 PM, Dushan Abeyruwan <[email protected]>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 <[email protected] >>>> > 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 >>>>> [email protected] >>>>> 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 >>>> >>>> >>> >> >> >> -- >> 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 >> >> > -- 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 [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
