That's strange, I'm doing it the same exact way and yet I get different results.  
I wonder why?  The only difference between my code and the code you posted below is 
that in my case, my methods are accepting a request that includes multiple elements 
and then returning void, whereas it looks like both your request and your response are 
passing the empty "void".  I am doing wrapped doc-lit as well.


-----Original Message-----
From: Pasca, Romulus [mailto:[EMAIL PROTECTED]
Sent: Monday, June 14, 2004 13:37
To: '[EMAIL PROTECTED]'
Subject: RE: Problems returning void in document-literal operation


Sabrina, I am working like this:
I declare the xml schema in a separate file togheter with the soap messages,
I wrote the wsdl file also by hand, wsdl file which includes my shema, and
I generate the data structures and the webz service interface using wdsl to
java and everything goes well.
 

-----Original Message-----
From: Liller, Sabrina L. CIV Sys Eng Branch 1B 9512
[mailto:[EMAIL PROTECTED]
Sent: Monday, June 14, 2004 12:16 PM
To: [EMAIL PROTECTED]
Subject: RE: Problems returning void in document-literal operation


Thanks for the suggestion, Romulus - I have tried this workaround, but it
doesn't look like it is going to give me what I want.  When I follow this
model, Axis generates an additional class called "_void" and then my methods
return that object, rather than actually returning void.  It seems like the
only way to generate methods that truly return void rather than returning an
Object of some sort is to define an empty message with no parts in the WSDL,
but then the service doesn't know what to do with it at runtime...And
therein lies my problem.
Regards,
Sabrina



-----Original Message-----
From: Pasca, Romulus [mailto:[EMAIL PROTECTED]
Sent: Monday, June 14, 2004 12:50
To: '[EMAIL PROTECTED]'
Subject: RE: Problems returning void in document-literal operation


Hi, I am usin too documnet literal ws style and for all my methods which
returns void or are having no parameters I made a declaration of the
follwing type:

        <message name="logoutRequest">
                <part name="parameters" element="types:void" />
        </message>

        <message name="logoutResponse">
                <part name="parameters" element="types:void" />
        </message>

        <operation name="logout">
         <input message="tns:logoutRequest"/>         
         <output message="tns:logoutResponse"/>         
      </operation>

were void, is type which I declared in my xml schema file(used by my web
service)like this:

<xs:element name="void">
        <xs:complexType/>
</xs:element>

and everything works fine

Romulus

-----Original Message-----
From: Liller, Sabrina L. CIV Sys Eng Branch 1B 9512
[mailto:[EMAIL PROTECTED]
Sent: Monday, June 14, 2004 11:44 AM
To: [EMAIL PROTECTED]
Subject: Problems returning void in document-literal operation


I have seen a few postings about this problem, but no resolution.  I am
working on a document-literal service and several of the operations should
have a "void" return type.  We are following the top-down model, writing the
WSDL first and then using WSDL2Java to generate the Java classes.  For the
operations that should return "void", I have defined the following message
in the WSDL (no parts):

<wsdl:message name="EmptyMessageResponse" />

Axis has no problem generating the Java code - The methods using this
response message are correctly generated as returning "void".  But when I
try to call the service, I get the following error:

org.xml.sax.SAXException: Deserializing parameter
'ModifyUnofficialRecordRequestResponse':  could not find deserializer for
type {http://xml.apache.org/axis/}Void 

All of my operations that do not return void seem to be working just fine.
Is this an Axis bug, or do I need to do something special to "massage" the
WSDL or WSDD to get this to work?  I am using Axis 1.1.  Any help would be
greatly appreciated!
Regards,
Sabrina

Reply via email to