Please send questions like this to the distribution list rather than to individuals.
I'm an expert on the WS specifications, but not on the Axis implementation.
Axis should invoke the operation based on the qname of the child element of the <soap:Body>. If you are using RPC style or Wrapped Document style, then the qname of the child element of the <soap:Body> is the same as the qname of the operation. But that's not the case in your WSDL. (You are using non-wrapped Document style.)
According to the WS-I BP, you must define a unique signature for each operation in your service. (The signature is defined by the qname of the child element of the <soap:Body>.)
In your WSDL, your two operations, CreateOperatorProfile and UpdateOperatorProfile, have identical signatures: <trac:OperatorProfile>.
You must define wrapper elements for <trac:OperatorProfile> to distinguish between the two operations. (In other words, the Wrapped style is the right way to go.)
Best regards,
Anne
At 11:18 AM 3/22/2004, Ahuja, Ruchi wrote:
Hi Tony/Anne,
I am trying to develop a web service using Axis 1.1. My Web Service has multiple operations with same number and type of input parameters. I am facing one problem that is the server is invoking the operation based on the qname of the parameters defined in the server-config.wsdd. It should rather invoke the operation based on the qname of operation.
It looks like you have also encountered the same problem.
http://www.mail-archive.com/[EMAIL PROTECTED]/msg16769.html
Have you been able to figure out the solution for this problem.
My WSDL file -
<message name="CreateOperatorProfile_IN">
<part name="body2" element="trac:OperatorProfile"/>
</message>
<message name="UpdateOperatorProfile_IN">
<part name="body4" element="trac:OperatorProfile"/>
</message>
<portType name="OperatorProfilePortType">
<operation name="CreateOperatorProfile">
<input message="tns:CreateOperatorProfile_IN"/>
</operation>
<operation name="UpdateOperatorProfile">
<input message="tns:UpdateOperatorProfile_IN"/>
</operation>
</portType>
Server-config.wsdd generated is -
<operation name="createOperatorProfile" qname="CreateOperatorProfile">
<parameter qname="ns2:OperatorProfile" type="ns2:OperatorProfile_t" xmlns:ns2="urn:schemas-com"/>
</operation>
<operation name="updateOperatorProfile" qname="UpdateOperatorProfile">
<parameter qname="ns4:OperatorProfile" type="ns4:OperatorProfile_t" xmlns:ns4="urn:schemas-com"/>
</operation>
Now the qname for both create and update operations is 'OperatorProfile'. As a result of which even when I invoke updateOperatorProfile() method createOperatorProfile() gets invoked as its qname matches first.
Is there any way by which I can specify a qname with the parameters in the WSDL file? Please let me know
Regards,
Ruchi
"Any comments or statements made in this email are not necessarily those of FISC India Pvt. Ltd. or any of the Fidelity Investments group companies. The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. If you have received this in error, please contact the sender and delete the material from any computer. All e-mails sent from or to FISC India Pvt. Ltd. may be subject to our monitoring procedures"
Anne Thomas Manes
VP & Research Director
Burton Group