Title: Wsdd Operation question

None of the Web services specifications (SOAP, WSDL, WS-I) discuss this area. It falls to the SOAP engine to map a WSDL <operation> to a specific method. I would expect, though, that you could map different operations to the same method.

 

I’m not an expert on the WSDD, but looking at the WSDD reference (http://www.osmoticweb.com/axis-wsdd/), I don’t see a way to specify a method name, so I’m assuming that the WSDD operation @name attribute maps to the method name. If that’s the case, then I’d say that Axis does not support mapping of multiple operations to the same method.

 

The WS-I Basic Profile disallows overloaded WSDL operations. I suggest that it’s a best practice to also not use overloaded Java methods.

 

But I agree with you that this is a shortcoming of the product. I recommend adding another attribute in the WSDD operation element that allows you to specify a method name. (The value of the method attribute should default to the value of the name attribute.) I suggest you submit an enhancement request.

 

Anne

 

 


From: Leena Janardanan [mailto:[EMAIL PROTECTED]]
Sent
: Wednesday, June 23, 2004 5:31 PM
To: [EMAIL PROTECTED]
Subject: Wsdd Operation question

 

All,

        I have a question regarding the <operation> tag in the wsdd, and well, probably an Axis limitation.

        Is it possible to have two WSDL operations, say,   getBooks() and getAuthors() map to the same Java method, say execute() ? In other words, when i receive SOAP requests for getBooks  or getAuthors, i want the same execute() method on my impl class called. Is this possible in Axis (1.2) ?  I have done this in weblogic.

        As far as i know, this implies that there will be two operation tags in the wsdd that look like this:

  <operation name="execute" qname="ns1:getBooks" returnQName="xsd:string" returnType="xsd:string" xmlns:ns1="namespace here" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>

  <operation name="execute" qname="ns1:getAuthors" returnQName="xsd:string" returnType="xsd:string" xmlns:ns1="namespace here" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>

        and this isnt valid.  Is there ANY way to do what i want to do ?

        I have been able to get ONE such operation to work, but when i put both in the WSDD, i get this error from Axis :

 faultString: org.apache.axis.InternalException: java.lang.Exception: The OperationDesc for invoke1 was not synchronized to a method of service.ServiceImpl

       
       
This is really urgent, so any help at all is appreciated.
                Thanks in advance,
                        Leena.

Reply via email to