Exceptions thrown by service methods are not propogated to clients properly.
----------------------------------------------------------------------------
Key: AXIS2-1754
URL: http://issues.apache.org/jira/browse/AXIS2-1754
Project: Apache Axis 2.0 (Axis2)
Issue Type: Bug
Components: rpc
Affects Versions: 1.1
Environment: OS: Windows XP SP2, Eclipse 3.2 IDE, Java 5.0 Update 7
Reporter: Aaron Gourley
This bug was introduced in revision 452427
(http://svn.apache.org/viewvc?view=rev&revision=452427)
In the invokeBusinessLogic() method, calls to "AxisFault.makeFault(e)" were
changed to calls to "new AxisFault(msg, e)" in the catch blocks in the
try/catch statements. This is particularly a problem in the handling of
InvocationTargetExceptions, because the call was actually replaced with a call
to "new AxisFault(msg) and exceptions thrown by service methods (which are
wrapped by InvocationTargetExceptions at this point) are discarded. The old
behaviour was to wrap the cause exception in an AxisFault and rethrow. Now the
cause exception is only used for its message and a new AxisFault exception is
created with the same message (and no reference to the exception thrown by the
service method).
This results in a meaningless exception being thrown every time.
Example:
My service object throws an exception object (which is defined in my WSDL)
containing some member fields: messageId and resultCode. I do not call
setMessage() on this exception, so getMessage() returns null. After the
RPCMessageReceivers process my exception, an AxisFault is thrown with message
"Exception occurred while trying to invoke service method " + method.getName().
My original exception is thrown away and I lose my messageId and resultCode
information. I get the following SOAP message from the server:
HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=07DA197EBF0B871BF5F99B82A177EE01;
Path=/TerminalLocationService
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 20 Nov 2006 20:05:48 GMT
Connection: close
169
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header
/><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Exception
occurred while trying to invoke service method
getLocationForGroup</faultstring><detail
/></soapenv:Fault></soapenv:Body></soapenv:Envelope>
0
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]