[
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]