What is the proper way to specify a return type of
void?
I'm writing a doc/literal web service. One of the
operations has a void return type. I had not
specified a Response wrapper in the types of my WSDL.
So I end up getting:
org.xml.sax.SAXException: Deserializing parameter
'addPersonRequestResponse': could not find
deserializer for type
{http://xml.apache.org/axis/}Void
I figured that maybe the BeanSerializer might help
here, so I tried to specify a Response wrapper type
containing xsd:anyType, but that didn't generate the
proper typemapping.
Sample WSDL follows.
Many Thanks.
Steve Maring
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="http://ws.addressbook.maring.org"
xmlns:impl="http://ws.addressbook.maring.org"
xmlns:intf="http://ws.addressbook.maring.org"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:data="http://data.addressbook.maring.org"
xmlns:wrapper="http://data.ws.addressbook.maring.org"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://data.addressbook.maring.org">
<include schemaLocation="../meta/persons.xsd" />
</schema>
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:data="http://data.addressbook.maring.org"
xmlns:wrapper="http://data.ws.addressbook.maring.org"
targetNamespace="http://data.ws.addressbook.maring.org">
<element name="addPersonRequest"
type="wrapper:AddPersonRequest"/>
<complexType name="AddPersonRequest">
<sequence>
<element ref="data:person"/>
</sequence>
</complexType>
<element name="getPersonRequest"
type="xsd:string"/>
<element name="getPersonResponse"
type="wrapper:GetPersonResponse"/>
<complexType name="GetPersonResponse">
<sequence>
<element ref="data:person"/>
</sequence>
</complexType>
<element name="getAddressBookResponse"
type="wrapper:GetAddressBookResponse"/>
<complexType name="GetAddressBookResponse">
<sequence>
<element ref="data:persons"/>
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="addPersonRequest">
<wsdl:part name="addPersonRequest"
element="wrapper:addPersonRequest"/>
</wsdl:message>
<wsdl:message name="addPersonResponse"/>
<wsdl:message name="getPersonRequest">
<wsdl:part name="getPersonRequest"
element="wrapper:getPersonRequest"/>
</wsdl:message>
<wsdl:message name="getPersonResponse">
<wsdl:part name="getPersonResponse"
element="wrapper:getPersonResponse"/>
</wsdl:message>
<wsdl:message name="getAddressBookRequest"/>
<wsdl:message name="getAddressBookResponse">
<wsdl:part name="getAddressBookResponse"
element="wrapper:getAddressBookResponse"/>
</wsdl:message>
<wsdl:portType name="AddressBookPortType">
<wsdl:operation name="addPerson"
parameterOrder="addPersonRequest">
<wsdl:input name="addPersonRequest"
message="impl:addPersonRequest"/>
<wsdl:output name="addPersonResponse"
message="impl:addPersonResponse"/>
</wsdl:operation>
<wsdl:operation name="getPerson"
parameterOrder="getPersonRequest">
<wsdl:input name="getPersonRequest"
message="impl:getPersonRequest"/>
<wsdl:output name="getPersonResponse"
message="impl:getPersonResponse"/>
</wsdl:operation>
<wsdl:operation name="getAddressBook">
<wsdl:input name="getAddressBookRequest"
message="impl:getAddressBookRequest"/>
<wsdl:output name="getAddressBookResponse"
message="impl:getAddressBookResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AddressBookSoapBinding"
type="intf:AddressBookPortType">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="addPerson">
<wsdlsoap:operation soapAction="addPerson"/>
<wsdl:input name="addPersonRequest">
<wsdlsoap:body use="literal"
namespace="http://ws.addressbook.maring.org"/>
</wsdl:input>
<wsdl:output name="addPersonResponse">
<wsdlsoap:body use="literal"
namespace="http://ws.addressbook.maring.org"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getPerson">
<wsdlsoap:operation soapAction="getPerson"/>
<wsdl:input name="getPersonRequest">
<wsdlsoap:body use="literal"
namespace="http://ws.addressbook.maring.org"/>
</wsdl:input>
<wsdl:output name="getPersonResponse">
<wsdlsoap:body use="literal"
namespace="http://ws.addressbook.maring.org"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getAddressBook">
<wsdlsoap:operation soapAction="getAddressBook"/>
<wsdl:input name="getAddressBookRequest">
<wsdlsoap:body use="literal"
namespace="http://ws.addressbook.maring.org"/>
</wsdl:input>
<wsdl:output name="getAddressBookResponse">
<wsdlsoap:body use="literal"
namespace="http://ws.addressbook.maring.org"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AddressBookPortTypeService">
<wsdl:port name="AddressBook"
binding="impl:AddressBookSoapBinding">
<wsdlsoap:address
location="http://http.server:http.port/AddressBook/services/AddressBook"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com