[ http://issues.apache.org/jira/browse/AXIS2-667?page=comments#action_12377831 ]
Davanum Srinivas commented on AXIS2-667: ---------------------------------------- post 1.0 please...let's review this in for a possible 1.0.1 soon if it turns to be a huge problem. > Operation dispatch based on message body is broken > -------------------------------------------------- > > Key: AXIS2-667 > URL: http://issues.apache.org/jira/browse/AXIS2-667 > Project: Apache Axis 2.0 (Axis2) > Type: Bug > Components: core > Versions: 1.0 > Environment: n/a > Reporter: Dennis Sosnoski > Priority: Critical > Attachments: patch.diff > > In working with doc/lit services where the operation was defined by the child > element of the SOAP:Body I found that Axis2 was trying to dispatch the wrong > operation. I tracked this down to the way > org.apache.axis2.description.AxisService sets up the operationsAliasMap, > where on line 329 it adds an entry mapping the getSoapAction() value to the > operation. If the soap actions for the operations are empty strings, as > normally occurs with doc/lit, the empty string will end up mapped to the last > operation encountered. org.apache.axis2.deployment.ServiceBuilder then maps > the empty strings again by calling the mapActionToOperation() method of the > service. > org.apache.axis2.engine.SOAPActionBasedDispatcher tries to look up the > operation based on the soap action string (line 54). This results in the last > operation being invoked for every service request. > The fix is to make the AxisService code only map the soap action if the > string is non-empty. I'm attaching diffs for the fix, but not committing it > myself because of the imminent 1.0 release. I have tested the patches and > passed all the build tests. I urge strongly that this patch be reviewed and > applied before the 1.0 release. -- 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