[
https://issues.apache.org/jira/browse/AXIS2-1327?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12462959
]
Amila Chinthaka Suriarachchi commented on AXIS2-1327:
-----------------------------------------------------
I think In your patch you have made a mistake here
protected void addSOAPAction(Document doc, Element rootElement, AxisOperation
axisOperation) {
addAttribute(doc, "soapaction", axisOperation.getInputAction(),
rootElement);
}
this should be as earlier i.e.
addAttribute(doc, "soapaction", axisOperation.getSoapAction(),
rootElement);
because if there is no soap action specified in wsdl both generated stub and
service.xml should have an empty strings.
As I understood the the problem reported here is that the server try to
dispatch the operation using soapaction even if it is an empty string (i.e "").
The correct fix should be to dispatch the operation either using address based
dispatching or body based dispatching when the soap action is an empty string.
> 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]