axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Deepal Jayasinghe (JIRA)" <>
Subject [jira] Commented: (AXIS2-1327) Incorrect operation selected when no SOAPAction specified
Date Thu, 21 Dec 2006 11:56:21 GMT
    [ ] 
Deepal Jayasinghe commented on AXIS2-1327:

I went through AxisOperation and found some code which are not clear to me as well as , I
can not understand the requirement of  getInputAction method as well (this change has done
in [1]). 

 public String getInputAction() {
        String result = this.soapAction;
        if (result == null || "".equals(result)) {
            if (wsamappingList != null && !wsamappingList.isEmpty()) {
                result = wsamappingList.get(0).toString();
        return result;

So as I understand to fix the problem we need to do the following ;
If the SOAP action is not there in wsdl then we should not generate actionMapping in services.xml
for the operation which dose not have soapaction;
As in 454188 we need should not add mapping into AxisOperation if the mapping value is empty.

So to fix the issue we need to revert [1] and to fix the codegen side not to generate actionmapping
when soapaction is not there.


> Incorrect operation selected when no SOAPAction specified
> ---------------------------------------------------------
>                 Key: AXIS2-1327
>                 URL:
>             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="">
> <actionMapping></actionMapping>
> <outputActionMapping></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:
For more information on JIRA, see:


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message