axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Amila Chinthaka Suriarachchi (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2-1327) Incorrect operation selected when no SOAPAction specified
Date Mon, 08 Jan 2007 06:15:27 GMT

    [ 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: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message