Bug 779196 - (SOA-1590) WebService Proxy - A one-way message that throws exception should not return HTTP code 500
WebService Proxy - A one-way message that throws exception should not return ...
Status: CLOSED NEXTRELEASE
Product: JBoss Enterprise SOA Platform 5
Classification: JBoss
Component: Documentation, JBossESB, JBossWS (Show other bugs)
5.0.0 ER2
Unspecified Unspecified
high Severity high
: ---
: 5.2.0 GA
Assigned To: David Le Sage
http://jira.jboss.org/jira/browse/SOA...
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2009-11-11 07:05 EST by Jiri Pechanec
Modified: 2011-11-15 04:04 EST (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2011-11-15 04:04:47 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
oneway_exc.zip (15.89 KB, application/zip)
2009-12-04 04:45 EST, Jiri Pechanec
no flags Details
Quickstart_webservice_proxy_basic_ws.war (16.40 KB, application/octet-stream)
2009-12-16 07:26 EST, Tom Fennelly
no flags Details


External Trackers
Tracker ID Priority Status Summary Last Updated
JBoss Issue Tracker SOA-1590 Major Closed WebService Proxy - A one-way message that throws exception should not return HTTP code 500 2012-12-03 06:56:44 EST

  None (edit)
Description Jiri Pechanec 2009-11-11 07:05:42 EST
Date of First Response: 2009-12-02 05:48:19
project_key: SOA

Whe WebService proxy is used to invoke one-way web service that thros a runtime exception then the error code 500 is returned to client together with fault message.  According to WS-I profile

The HTTP response to a one-way operation indicates the success or failure of the transmission of the message. Based on the semantics of the different response status codes supported by the HTTP protocol, the Profile specifies that "200" and "202" are the preferred status codes that the sender should expect, signifying that the one-way message was received. A successful transmission does not indicate that the SOAP processing layer and the application logic has had a chance to validate the envelope or have committed to processing it.

Only 200 or 202 codes should be returned as the message was successfully transmitted to JBossESB and code 500 should not be used to report errors at service level.
Comment 1 trev 2009-12-02 05:48:19 EST
Jirka can you provide an example for kconner please
Comment 2 Jiri Pechanec 2009-12-04 04:45:52 EST
Attachment: Added: oneway_exc.zip
Comment 3 Kevin Conner 2009-12-07 06:05:08 EST
Link: Added: This issue depends JBESB-3035
Comment 4 Tom Fennelly 2009-12-16 06:04:51 EST
To me, this looks to be an issue with JBossWS.  The webserive operation itself is not honoring the @Oneway annotation on th webmethod.  The WS container is returning the exception as thrown by the webmethod.
Comment 5 Tom Fennelly 2009-12-16 06:10:33 EST
I'll look at the SOAPProxy code and see is there a way we can enforce this from inside the ESB.
Comment 6 Kevin Conner 2009-12-16 06:13:31 EST
The SOAP Proxy should be doing just that, proxying the response (whatever it is).  If this is a JBossWS issue then we need to pass it over to them,
Comment 7 Tom Fennelly 2009-12-16 06:25:34 EST
Sure... this is an issue with JBossWS, but perhaps the SOAPProxy should be able to enforce it too... what if it's proxying to something other than JBossWS?... I would have thought people would expect an ESB to be able to help them resolve issues like this.  That said, it would change this into a feature request from the pov of the platform.
Comment 8 Tom Fennelly 2009-12-16 06:28:28 EST
Ignore my last comment... they can always implement an action (following the proxy). 
Comment 9 Tom Fennelly 2009-12-16 07:26:18 EST
Added test war with @Oneway operation. Install in AS container and execute using soapUI (or whatever). You get a 500 response + operation execution details (in this case, an exception).
Comment 10 Tom Fennelly 2009-12-16 07:26:18 EST
Attachment: Added: Quickstart_webservice_proxy_basic_ws.war
Comment 11 Tom Fennelly 2009-12-16 07:27:18 EST
So just to reiterate... this is not a bug in the ESB.  This needs to be worked out with the JBossWS guys.
Comment 12 Kevin Conner 2010-01-14 04:49:23 EST
Tom has shown that this issue lies with JBossWS rather than ESB
Comment 13 David Le Sage 2010-02-09 22:56:53 EST
Added issue to Release Notes.  Draft text reads:


https://jira.jboss.org/jira/browse/SOA-1590

    When the Web Service proxy is used to invoke a one-way web service, it erroneously throws
    a run-time exception with HTTP Code 500, which is returned to the client together with a fault
    message. HTTP Code 500 is invalid in these situations as only Code 200 or 202 should ever be
    returned as the message was successfully transmitted to the ESB.
Comment 14 Kevin Conner 2010-02-11 04:39:56 EST
Perhaps something like the following?

When the Web Service proxy is used to invoke any method it will return the response as provided by the target webservice.  In some instances the target webservice may return a response which is not valid within the invoking context.  The Web Service proxy does not sanitise these responses and will pass the response back to the caller.
Comment 15 Anne-Louise Tangring 2010-09-10 17:20:52 EDT
Candidate for documentation for SOA 5.1.0
Comment 16 trev 2010-10-04 06:26:09 EDT
down as documentation. If you need more information, give me a yell
Comment 17 Anne-Louise Tangring 2010-12-02 11:03:47 EST
PM team decided this is not a blocker for SOA 5.1.0. Darran will create a jbpapp JIRA and link together with this one.
Comment 19 Darrin Mison 2011-01-04 19:14:46 EST
Writer: Added: dlesage
Comment 20 David Le Sage 2011-07-14 21:03:20 EDT
Release Notes Docs Status: Added: Documented as Known Issue
Release Notes Text: Added: https://issues.jboss.org/browse/SOA-1590

When the Web Service proxy is used to invoke any method it will return the response as provided by the target webservice. In some instances the target webservice may return a response which is not valid within the invoking context. The Web Service proxy does not sanitise these responses and will pass the response back to the caller.
Comment 21 David Le Sage 2011-07-14 21:04:14 EDT
Added as release note.

Note You need to log in before you can comment on or make changes to this bug.