Incorrect operation selected when no SOAPAction specified
---------------------------------------------------------
Key: AXIS2-1327
URL: http://issues.apache.org/jira/browse/AXIS2-1327
Project: Apache Axis 2.0 (Axis2)
Issue Type: Bug
Affects Versions: nightly
Environment: Linux, JDK 1.5.0
Reporter: Dennis Sosnoski
Priority: Critical
The org.apache.axis2.description.AxisService.addOperation() method gets an
ArrayList of wsamappings (line 376) and then adds each mapping as an alias for
the operation by calling mapActionToOperation(). Unfortunately the wasmappings
list includes an empty string for each operation, meaning that the last
operation added will be aliased to the empty string.
If an incoming request is received with no SOAPAction set, the
SOAPActionBasedDispatcher (line 51) calls the service method
getOperationByAction() which returns this last operation added. Because the
operation has been set by this dispatcher the message receiver code will
attempt to invoke the wrong action. This is the cause of AXIS2-1316
It looks to me like the empty string is being set as an action mapping because
the generated service.xml contains an empty <actionMapping> element in the case
where no soapAction is defined by the WSDL used for code generation:
<operation name="addBook" mep="http://www.w3.org/2004/08/wsdl/in-out">
<actionMapping></actionMapping>
<outputActionMapping>http://ws.sosnoski.com/library/wsdl/Library/addBookResponse</outputActionMapping>
</operation>
The suggested fix is to avoid adding empty strings to the mappingList in
org.apache.axis2.deployment.DescriptionBuilder (lines 462-466). I'd prefer to
have this change verified by someone who knows this code, though, in case there
are side effects from removing the empty string mappings.
--
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]