Bug 779196 (SOA-1590) - WebService Proxy - A one-way message that throws exception should not return HTTP code 500
Summary: WebService Proxy - A one-way message that throws exception should not return ...
Keywords:
Status: CLOSED NEXTRELEASE
Alias: SOA-1590
Product: JBoss Enterprise SOA Platform 5
Classification: JBoss
Component: Documentation, JBossESB, JBossWS
Version: 5.0.0 ER2
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: 5.2.0 GA
Assignee: David Le Sage
QA Contact:
URL: http://jira.jboss.org/jira/browse/SOA...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-11-11 12:05 UTC by Jiri Pechanec
Modified: 2011-11-15 09:04 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-11-15 09:04:47 UTC
Type: Bug
Embargoed:


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


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker SOA-1590 0 Major Closed WebService Proxy - A one-way message that throws exception should not return HTTP code 500 2012-12-03 11:56:44 UTC

Description Jiri Pechanec 2009-11-11 12:05:42 UTC
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 10:48:19 UTC
Jirka can you provide an example for kconner please

Comment 2 Jiri Pechanec 2009-12-04 09:45:52 UTC
Attachment: Added: oneway_exc.zip


Comment 3 Kevin Conner 2009-12-07 11:05:08 UTC
Link: Added: This issue depends JBESB-3035


Comment 4 Tom Fennelly 2009-12-16 11:04:51 UTC
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 11:10:33 UTC
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 11:13:31 UTC
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 11:25:34 UTC
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 11:28:28 UTC
Ignore my last comment... they can always implement an action (following the proxy). 

Comment 9 Tom Fennelly 2009-12-16 12:26:18 UTC
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 12:26:18 UTC
Attachment: Added: Quickstart_webservice_proxy_basic_ws.war


Comment 11 Tom Fennelly 2009-12-16 12:27:18 UTC
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 09:49:23 UTC
Tom has shown that this issue lies with JBossWS rather than ESB

Comment 13 David Le Sage 2010-02-10 03:56:53 UTC
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 09:39:56 UTC
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 21:20:52 UTC
Candidate for documentation for SOA 5.1.0

Comment 16 trev 2010-10-04 10:26:09 UTC
down as documentation. If you need more information, give me a yell

Comment 17 Anne-Louise Tangring 2010-12-02 16:03:47 UTC
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 Dana Mison 2011-01-05 00:14:46 UTC
Writer: Added: dlesage


Comment 20 David Le Sage 2011-07-15 01:03:20 UTC
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-15 01:04:14 UTC
Added as release note.


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