Madeleine,
The wrapped style only refers to the parameters to the service, not the response. Consequently, your two WSDLs produce the same input to the same service. However, the output from the service is presumably sending back the following XML fragment:
<processResponse>
<processReturn>the result string</processReturn>
</processResponse>
The first WSDL maps this exactly but the second WSDL is not expecting any child elements, hence the error. Try it with the response defined in the same way as for the first WSDL.
Tony
"Madeleine Wright" <[EMAIL PROTECTED]> wrote on 03/12/2004 19:13:33:
> I'm currently using axis-1_2RC1 and have encountered a behaviour I can't
> explain. I have been experimenting with the different types of
> programming styles available in Axis. I have no problem with the RPC
> default or the wrapped/literal styles but when I use exactly the same
> wsdd file but substitute "document" for "wrapped", I get the following
> error on calling the service: "SimpleDeserializer encountered a child
> element, which is NOT expected, in something it was trying to
> deserialize". The service is exactly the same with the other 2 styles
> so why does "Document" cause this problem? Even when I create a fault
> situation, I have no problem with the other styles.
>
> I generated the WSDLs for the 2 styles (see below): the main difference,
> as explained in the User Guide, is the treatment of the operation
> element. Neither the default RPC style nor the document style uses the
> <complexType> element so this doesn't look to be the problem. The
> service accepts a string as input and returns a string as output.
>
> Please does anyone have an answer?
>
> WSDL for wrapped service:
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions
> targetNamespace="http://localhost:8080/axis/services/Testing"
> xmlns:apachesoap="http://xml.apache.org/xml-soap"
> xmlns:impl="http://localhost:8080/axis/services/Testing"
> xmlns:intf="http://localhost:8080/axis/services/Testing"
> xmlns:tns1="http://Testing"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <wsdl:types>
> <schema elementFormDefault="qualified" targetNamespace=http://Testing
> xmlns="http://www.w3.org/2001/XMLSchema">
> <element name="process">
> <complexType>
> <sequence>
> <element name="in0" type="xsd:string"/>
> </sequence>
> </complexType>
> </element>
> <element name="processResponse">
> <complexType>
> <sequence>
> <element name="processReturn" type="xsd:string"/>
> </sequence>
> </complexType>
> </element>
>
> </schema>
> </wsdl:types>
>
> <wsdl:message name="processRequest">
> <wsdl:part element="tns1:process" name="parameters"/>
> </wsdl:message>
> <wsdl:message name="processResponse">
> <wsdl:part element="tns1:processResponse" name="parameters"/>
> </wsdl:message>
> <wsdl:portType name="TryIndex">
> <wsdl:operation name="process">
> <wsdl:input message="impl:processRequest" name="processRequest"/>
> <wsdl:output message="impl:processResponse"
> name="processResponse"/>
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="TestingSoapBinding" type="impl:TryIndex">
> <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> <wsdl:operation name="process">
> <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="processRequest">
> <wsdlsoap:body use="literal"/>
> </wsdl:input>
> <wsdl:output name="processResponse">
> <wsdlsoap:body use="literal"/>
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="TryIndexService">
> <wsdl:port binding="impl:TestingSoapBinding" name="Testing">
> <wsdlsoap:address
> location="http://localhost:8080/axis/services/Testing"/>
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
>
>
> WSDL FOR THE DOCUMENT STYLE
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions
> targetNamespace="http://localhost:8080/axis/services/Testing"
> xmlns:apachesoap="http://xml.apache.org/xml-soap"
> xmlns:impl="http://localhost:8080/axis/services/Testing"
> xmlns:intf="http://localhost:8080/axis/services/Testing"
> xmlns:tns1="http://Testing"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <wsdl:types>
> <schema elementFormDefault="qualified"
> targetNamespace="http://Testing" xmlns="http://www.w3.org/2001/XMLSchema">
> <element name="in0" type="xsd:string"/>
> </schema>
> <schema elementFormDefault="qualified"
> targetNamespace="http://localhost:8080/axis/services/Testing"
> xmlns="http://www.w3.org/2001/XMLSchema">
> <element name="processReturn" type="xsd:string"/>
> </schema>
> </wsdl:types>
> <wsdl:message name="processRequest">
> <wsdl:part element="tns1:in0" name="in0"/>
> </wsdl:message>
> <wsdl:message name="processResponse">
> <wsdl:part element="impl:processReturn" name="processReturn"/>
> </wsdl:message>
> <wsdl:portType name="TryIndex">
> <wsdl:operation name="process" parameterOrder="in0">
> <wsdl:input message="impl:processRequest" name="processRequest"/>
> <wsdl:output message="impl:processResponse"
> name="processResponse"/>
> </wsdl:operation>
> </wsdl:portType>
> <wsdl:binding name="TestingSoapBinding" type="impl:TryIndex">
> <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> <wsdl:operation name="process">
> <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="processRequest">
> <wsdlsoap:body use="literal"/>
> </wsdl:input>
> <wsdl:output name="processResponse">
> <wsdlsoap:body use="literal"/>
> </wsdl:output>
> </wsdl:operation>
> </wsdl:binding>
> <wsdl:service name="TryIndexService">
> <wsdl:port binding="impl:TestingSoapBinding" name="Testing">
> <wsdlsoap:address
> location="http://localhost:8080/axis/services/Testing"/>
> </wsdl:port>
> </wsdl:service>
> </wsdl:definitions>
>
> Thanks.
>
> Madeleine
>
>
- document style problem Madeleine Wright
- Re: document style problem tony . q . weddle
- Re: document style problem Madeleine Wright