[ 
https://issues.apache.org/jira/browse/AXIS2-1327?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Illsley reopened AXIS2-1327:
----------------------------------


Hi, sorry I've not been keeping up with JIRA for the last couple of weeks so I 
missed this.

I haven't had a chance to work out everything that was changed here (the diffs 
aren't too helpful) but I'm not sure the fix that was applied is a long-term 
solution.

The change to getInputAction totally destroys the point of the method which is 
easy access to the action which uniquely identifies the operation. If a 
soapAction is specified we should use that, otherwise we should use the 
ws-addressing action.

I've had a quick look at AXIS2-1897 and I take the point that sending an 
unrecognised soapAction might be a problem. Part of the problem is that Axis2 
conflates soapAction and wsa:Action in some places and not others.

It's important that the correct action (including a ws-a generated one) is 
generated for the client stub so it can be used for ws-a if engaged.

However AXIS2-1897 is correct that it shouldn't be added to the generated wsdl 
and isn't necessary for the services.xml file.

I'll take a look at a long term fix for this over the next few days.

> Incorrect operation selected when no SOAPAction specified
> ---------------------------------------------------------
>
>                 Key: AXIS2-1327
>                 URL: https://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
>         Assigned To: David Illsley
>            Priority: Blocker
>
> 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: 
https://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]

Reply via email to