hi all,

Have a look at the code in the AxisService getOperation method.
(AxisService.java 1613)

if (axisOperation == null) {
            axisOperation = (AxisOperation) operationsAliasesMap
                    .get(operationName.getLocalPart());

            if (LoggingControl.debugLoggingAllowed && log.isDebugEnabled())
                log.debug("Operations aliases map: " +
operationsAliasesMap);
        }

Here it tries to get the operation assuming operation name local part is
equals to the action.
Although this is a common practise it is not a spec requirement.

As a result of this code it fails codegen for wsdls like this.

<wsdl:portType name="OrderProcessorService">
        <wsdl:operation name="SubmitOrderTransactedQueue">
            <wsdl:input wsaw:Action="SubmitOrder"

message="tns:OrderProcessorService_SubmitOrderTransactedQueue_InputMessage"/>
        </wsdl:operation>
        <wsdl:operation name="SubmitOrder">
            <wsdl:input wsaw:Action="SubmitOrderOnePhase"
message="tns:OrderProcessorService_SubmitOrder_InputMessage"/>
        </wsdl:operation>
        <wsdl:operation name="isOnline">
            <wsdl:input wsaw:Action="isOnline"
message="tns:OrderProcessorService_isOnline_InputMessage"/>
        </wsdl:operation>
    </wsdl:portType>

since the Action SubmitOrder is defined in first operation it returns a
wrong action when checking
for second operation. It should return null.

Shall we remove this part?

thanks,
Amila.

-- 
Amila Suriarachchi,
WSO2 Inc.

Reply via email to