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.