You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by shantanu chawla <sh...@gmail.com> on 2005/05/02 19:20:42 UTC

newbie help

Hi

I am new to webservices and axis.
I am trying to use axis with tomcat using eclipse wtp plugin to create
webservices.
I create a simple java class that has two methods one returning string
and another returning an array of string. My client is in java is
giving the following error.

Exception:
org.xml.sax.SAXException: SimpleDeserializer encountered a child
element, which is NOT expected, in something it was trying to
deserialize.
       at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:189)
       at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:963)
       at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:198)
       at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:722)
       at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:233)
       at org.apache.axis.message.RPCElement.getParams(RPCElement.java:347)
       at org.apache.axis.client.Call.invoke(Call.java:2272)
       at org.apache.axis.client.Call.invoke(Call.java:2171)
       at org.apache.axis.client.Call.invoke(Call.java:1691)
       at com.shantanu.HelloTestSoapBindingStub.getMsgs(HelloTestSoapBindingStub.java:139)
       at com.shantanu.ClientTest.main(ClientTest.java:15)

Though using soap monitor i can see that i am receiving 3 items in the
response. my soap message returned is:

HTTP/1.1 200 OK

Content-Type: text/xml;charset=utf-8

Date: Mon, 02 May 2005 17:05:19 GMT

Server: Apache-Coyote/1.1

Connection: close

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<getMsgsResponse xmlns="http://shantanu.com">
<getMsgsReturn mlns="">
<item>msg1</item>
<item>msg2</item>
<item>msg3</item>
</getMsgsReturn>
</getMsgsResponse>
</soapenv:Body></soapenv:Envelope>
--

my wsdl is.

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://shantanu.com"
xmlns:impl="http://shantanu.com" xmlns:intf="http://shantanu.com"
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:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
 <schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://shantanu.com">
  <element name="getWelcomeMsg">
   <complexType/>
  </element>
  <element name="getWelcomeMsgResponse">
   <complexType>
    <sequence>
     <element name="getWelcomeMsgReturn" type="xsd:string"/>
    </sequence>
   </complexType>
  </element>
  <element name="getMsgs">
   <complexType/>
  </element>
  <element name="getMsgsResponse">
   <complexType>
    <sequence>
     <element name="getMsgsReturn" type="string" minOccurs="0"
maxOccurs="unbounded"/>
    </sequence>
   </complexType>
  </element>
 </schema>
</wsdl:types>

  <wsdl:message name="getWelcomeMsgResponse">

     <wsdl:part name="parameters" element="impl:getWelcomeMsgResponse"/>

  </wsdl:message>

  <wsdl:message name="getMsgsResponse">

     <wsdl:part name="parameters" element="impl:getMsgsResponse"/>

  </wsdl:message>

  <wsdl:message name="getMsgsRequest">

     <wsdl:part name="parameters" element="impl:getMsgs"/>

  </wsdl:message>

  <wsdl:message name="getWelcomeMsgRequest">

     <wsdl:part name="parameters" element="impl:getWelcomeMsg"/>

  </wsdl:message>

  <wsdl:portType name="HelloTest">

     <wsdl:operation name="getWelcomeMsg">

        <wsdl:input name="getWelcomeMsgRequest"
message="impl:getWelcomeMsgRequest"/>

        <wsdl:output name="getWelcomeMsgResponse"
message="impl:getWelcomeMsgResponse"/>

     </wsdl:operation>

     <wsdl:operation name="getMsgs">

        <wsdl:input name="getMsgsRequest" message="impl:getMsgsRequest"/>

        <wsdl:output name="getMsgsResponse" message="impl:getMsgsResponse"/>

     </wsdl:operation>

  </wsdl:portType>

  <wsdl:binding name="HelloTestSoapBinding" type="impl:HelloTest">

     <wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>

     <wsdl:operation name="getWelcomeMsg">

        <wsdlsoap:operation
soapAction="http://localhost:9090/axis/services/HelloTest/getWelcomeMsg"/>

        <wsdl:input name="getWelcomeMsgRequest">

           <wsdlsoap:body use="literal" namespace="http://shantanu.com"/>

        </wsdl:input>

        <wsdl:output name="getWelcomeMsgResponse">

           <wsdlsoap:body use="literal" namespace="http://shantanu.com"/>

        </wsdl:output>

     </wsdl:operation>

     <wsdl:operation name="getMsgs">

        <wsdlsoap:operation
soapAction="http://localhost:9090/axis/services/HelloTest/getMsgs"/>

        <wsdl:input name="getMsgsRequest">

           <wsdlsoap:body use="literal" namespace="http://shantanu.com"/>

        </wsdl:input>

        <wsdl:output name="getMsgsResponse">

           <wsdlsoap:body use="literal" namespace="http://shantanu.com"/>

        </wsdl:output>

     </wsdl:operation>

  </wsdl:binding>

  <wsdl:service name="HelloTestService">

     <wsdl:port name="HelloTest" binding="impl:HelloTestSoapBinding">

        <wsdlsoap:address
location="http://localhost:9090/axis/services/HelloTest"/>

     </wsdl:port>

  </wsdl:service>

</wsdl:definitions>

If i create a client in .net I can receive only first item in the string array.
any comments....

Shantanu Chawla

Graduate Student
Department of Computer Science,
San Diego State University

Re: newbie help

Posted by Anne Thomas Manes <at...@gmail.com>.
Also remove the namespace attribute from the <wsdlsoap:body>
definitions. (This attribute should be used only with style="rpc")

On 5/2/05, Davanum Srinivas <da...@gmail.com> wrote:
> add elementFormDefault="qualified" as an attribute in your schema
> element and re-generate the server.
> 
> -- dims
> 
> On 5/2/05, shantanu chawla <sh...@gmail.com> wrote:
> > Hi
> >
> > I am new to webservices and axis.
> > I am trying to use axis with tomcat using eclipse wtp plugin to create
> > webservices.
> > I create a simple java class that has two methods one returning string
> > and another returning an array of string. My client is in java is
> > giving the following error.
> >
> > Exception:
> > org.xml.sax.SAXException: SimpleDeserializer encountered a child
> > element, which is NOT expected, in something it was trying to
> > deserialize.
> >        at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:189)
> >        at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:963)
> >        at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:198)
> >        at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:722)
> >        at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:233)
> >        at org.apache.axis.message.RPCElement.getParams(RPCElement.java:347)
> >        at org.apache.axis.client.Call.invoke(Call.java:2272)
> >        at org.apache.axis.client.Call.invoke(Call.java:2171)
> >        at org.apache.axis.client.Call.invoke(Call.java:1691)
> >        at com.shantanu.HelloTestSoapBindingStub.getMsgs(HelloTestSoapBindingStub.java:139)
> >        at com.shantanu.ClientTest.main(ClientTest.java:15)
> >
> > Though using soap monitor i can see that i am receiving 3 items in the
> > response. my soap message returned is:
> >
> > HTTP/1.1 200 OK
> >
> > Content-Type: text/xml;charset=utf-8
> >
> > Date: Mon, 02 May 2005 17:05:19 GMT
> >
> > Server: Apache-Coyote/1.1
> >
> > Connection: close
> >
> > <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
> > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> > <soapenv:Body>
> > <getMsgsResponse xmlns="http://shantanu.com">
> > <getMsgsReturn mlns="">
> > <item>msg1</item>
> > <item>msg2</item>
> > <item>msg3</item>
> > </getMsgsReturn>
> > </getMsgsResponse>
> > </soapenv:Body></soapenv:Envelope>
> > --
> >
> > my wsdl is.
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <wsdl:definitions targetNamespace="http://shantanu.com"
> > xmlns:impl="http://shantanu.com" xmlns:intf="http://shantanu.com"
> > 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:wsdl="http://schemas.xmlsoap.org/wsdl/"
> > xmlns="http://schemas.xmlsoap.org/wsdl/">
> > <wsdl:types>
> >  <schema xmlns="http://www.w3.org/2001/XMLSchema"
> > targetNamespace="http://shantanu.com">
> >   <element name="getWelcomeMsg">
> >    <complexType/>
> >   </element>
> >   <element name="getWelcomeMsgResponse">
> >    <complexType>
> >     <sequence>
> >      <element name="getWelcomeMsgReturn" type="xsd:string"/>
> >     </sequence>
> >    </complexType>
> >   </element>
> >   <element name="getMsgs">
> >    <complexType/>
> >   </element>
> >   <element name="getMsgsResponse">
> >    <complexType>
> >     <sequence>
> >      <element name="getMsgsReturn" type="string" minOccurs="0"
> > maxOccurs="unbounded"/>
> >     </sequence>
> >    </complexType>
> >   </element>
> >  </schema>
> > </wsdl:types>
> >
> >   <wsdl:message name="getWelcomeMsgResponse">
> >
> >      <wsdl:part name="parameters" element="impl:getWelcomeMsgResponse"/>
> >
> >   </wsdl:message>
> >
> >   <wsdl:message name="getMsgsResponse">
> >
> >      <wsdl:part name="parameters" element="impl:getMsgsResponse"/>
> >
> >   </wsdl:message>
> >
> >   <wsdl:message name="getMsgsRequest">
> >
> >      <wsdl:part name="parameters" element="impl:getMsgs"/>
> >
> >   </wsdl:message>
> >
> >   <wsdl:message name="getWelcomeMsgRequest">
> >
> >      <wsdl:part name="parameters" element="impl:getWelcomeMsg"/>
> >
> >   </wsdl:message>
> >
> >   <wsdl:portType name="HelloTest">
> >
> >      <wsdl:operation name="getWelcomeMsg">
> >
> >         <wsdl:input name="getWelcomeMsgRequest"
> > message="impl:getWelcomeMsgRequest"/>
> >
> >         <wsdl:output name="getWelcomeMsgResponse"
> > message="impl:getWelcomeMsgResponse"/>
> >
> >      </wsdl:operation>
> >
> >      <wsdl:operation name="getMsgs">
> >
> >         <wsdl:input name="getMsgsRequest" message="impl:getMsgsRequest"/>
> >
> >         <wsdl:output name="getMsgsResponse" message="impl:getMsgsResponse"/>
> >
> >      </wsdl:operation>
> >
> >   </wsdl:portType>
> >
> >   <wsdl:binding name="HelloTestSoapBinding" type="impl:HelloTest">
> >
> >      <wsdlsoap:binding style="document"
> > transport="http://schemas.xmlsoap.org/soap/http"/>
> >
> >      <wsdl:operation name="getWelcomeMsg">
> >
> >         <wsdlsoap:operation
> > soapAction="http://localhost:9090/axis/services/HelloTest/getWelcomeMsg"/>
> >
> >         <wsdl:input name="getWelcomeMsgRequest">
> >
> >            <wsdlsoap:body use="literal" namespace="http://shantanu.com"/>
> >
> >         </wsdl:input>
> >
> >         <wsdl:output name="getWelcomeMsgResponse">
> >
> >            <wsdlsoap:body use="literal" namespace="http://shantanu.com"/>
> >
> >         </wsdl:output>
> >
> >      </wsdl:operation>
> >
> >      <wsdl:operation name="getMsgs">
> >
> >         <wsdlsoap:operation
> > soapAction="http://localhost:9090/axis/services/HelloTest/getMsgs"/>
> >
> >         <wsdl:input name="getMsgsRequest">
> >
> >            <wsdlsoap:body use="literal" namespace="http://shantanu.com"/>
> >
> >         </wsdl:input>
> >
> >         <wsdl:output name="getMsgsResponse">
> >
> >            <wsdlsoap:body use="literal" namespace="http://shantanu.com"/>
> >
> >         </wsdl:output>
> >
> >      </wsdl:operation>
> >
> >   </wsdl:binding>
> >
> >   <wsdl:service name="HelloTestService">
> >
> >      <wsdl:port name="HelloTest" binding="impl:HelloTestSoapBinding">
> >
> >         <wsdlsoap:address
> > location="http://localhost:9090/axis/services/HelloTest"/>
> >
> >      </wsdl:port>
> >
> >   </wsdl:service>
> >
> > </wsdl:definitions>
> >
> > If i create a client in .net I can receive only first item in the string array.
> > any comments....
> >
> > Shantanu Chawla
> >
> > Graduate Student
> > Department of Computer Science,
> > San Diego State University
> >
> 
> --
> Davanum Srinivas - http://webservices.apache.org/~dims/
>

Re: newbie help

Posted by Davanum Srinivas <da...@gmail.com>.
add elementFormDefault="qualified" as an attribute in your schema
element and re-generate the server.

-- dims

On 5/2/05, shantanu chawla <sh...@gmail.com> wrote:
> Hi
> 
> I am new to webservices and axis.
> I am trying to use axis with tomcat using eclipse wtp plugin to create
> webservices.
> I create a simple java class that has two methods one returning string
> and another returning an array of string. My client is in java is
> giving the following error.
> 
> Exception:
> org.xml.sax.SAXException: SimpleDeserializer encountered a child
> element, which is NOT expected, in something it was trying to
> deserialize.
>        at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:189)
>        at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:963)
>        at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:198)
>        at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:722)
>        at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:233)
>        at org.apache.axis.message.RPCElement.getParams(RPCElement.java:347)
>        at org.apache.axis.client.Call.invoke(Call.java:2272)
>        at org.apache.axis.client.Call.invoke(Call.java:2171)
>        at org.apache.axis.client.Call.invoke(Call.java:1691)
>        at com.shantanu.HelloTestSoapBindingStub.getMsgs(HelloTestSoapBindingStub.java:139)
>        at com.shantanu.ClientTest.main(ClientTest.java:15)
> 
> Though using soap monitor i can see that i am receiving 3 items in the
> response. my soap message returned is:
> 
> HTTP/1.1 200 OK
> 
> Content-Type: text/xml;charset=utf-8
> 
> Date: Mon, 02 May 2005 17:05:19 GMT
> 
> Server: Apache-Coyote/1.1
> 
> Connection: close
> 
> <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <soapenv:Body>
> <getMsgsResponse xmlns="http://shantanu.com">
> <getMsgsReturn mlns="">
> <item>msg1</item>
> <item>msg2</item>
> <item>msg3</item>
> </getMsgsReturn>
> </getMsgsResponse>
> </soapenv:Body></soapenv:Envelope>
> --
> 
> my wsdl is.
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="http://shantanu.com"
> xmlns:impl="http://shantanu.com" xmlns:intf="http://shantanu.com"
> 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:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns="http://schemas.xmlsoap.org/wsdl/">
> <wsdl:types>
>  <schema xmlns="http://www.w3.org/2001/XMLSchema"
> targetNamespace="http://shantanu.com">
>   <element name="getWelcomeMsg">
>    <complexType/>
>   </element>
>   <element name="getWelcomeMsgResponse">
>    <complexType>
>     <sequence>
>      <element name="getWelcomeMsgReturn" type="xsd:string"/>
>     </sequence>
>    </complexType>
>   </element>
>   <element name="getMsgs">
>    <complexType/>
>   </element>
>   <element name="getMsgsResponse">
>    <complexType>
>     <sequence>
>      <element name="getMsgsReturn" type="string" minOccurs="0"
> maxOccurs="unbounded"/>
>     </sequence>
>    </complexType>
>   </element>
>  </schema>
> </wsdl:types>
> 
>   <wsdl:message name="getWelcomeMsgResponse">
> 
>      <wsdl:part name="parameters" element="impl:getWelcomeMsgResponse"/>
> 
>   </wsdl:message>
> 
>   <wsdl:message name="getMsgsResponse">
> 
>      <wsdl:part name="parameters" element="impl:getMsgsResponse"/>
> 
>   </wsdl:message>
> 
>   <wsdl:message name="getMsgsRequest">
> 
>      <wsdl:part name="parameters" element="impl:getMsgs"/>
> 
>   </wsdl:message>
> 
>   <wsdl:message name="getWelcomeMsgRequest">
> 
>      <wsdl:part name="parameters" element="impl:getWelcomeMsg"/>
> 
>   </wsdl:message>
> 
>   <wsdl:portType name="HelloTest">
> 
>      <wsdl:operation name="getWelcomeMsg">
> 
>         <wsdl:input name="getWelcomeMsgRequest"
> message="impl:getWelcomeMsgRequest"/>
> 
>         <wsdl:output name="getWelcomeMsgResponse"
> message="impl:getWelcomeMsgResponse"/>
> 
>      </wsdl:operation>
> 
>      <wsdl:operation name="getMsgs">
> 
>         <wsdl:input name="getMsgsRequest" message="impl:getMsgsRequest"/>
> 
>         <wsdl:output name="getMsgsResponse" message="impl:getMsgsResponse"/>
> 
>      </wsdl:operation>
> 
>   </wsdl:portType>
> 
>   <wsdl:binding name="HelloTestSoapBinding" type="impl:HelloTest">
> 
>      <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
> 
>      <wsdl:operation name="getWelcomeMsg">
> 
>         <wsdlsoap:operation
> soapAction="http://localhost:9090/axis/services/HelloTest/getWelcomeMsg"/>
> 
>         <wsdl:input name="getWelcomeMsgRequest">
> 
>            <wsdlsoap:body use="literal" namespace="http://shantanu.com"/>
> 
>         </wsdl:input>
> 
>         <wsdl:output name="getWelcomeMsgResponse">
> 
>            <wsdlsoap:body use="literal" namespace="http://shantanu.com"/>
> 
>         </wsdl:output>
> 
>      </wsdl:operation>
> 
>      <wsdl:operation name="getMsgs">
> 
>         <wsdlsoap:operation
> soapAction="http://localhost:9090/axis/services/HelloTest/getMsgs"/>
> 
>         <wsdl:input name="getMsgsRequest">
> 
>            <wsdlsoap:body use="literal" namespace="http://shantanu.com"/>
> 
>         </wsdl:input>
> 
>         <wsdl:output name="getMsgsResponse">
> 
>            <wsdlsoap:body use="literal" namespace="http://shantanu.com"/>
> 
>         </wsdl:output>
> 
>      </wsdl:operation>
> 
>   </wsdl:binding>
> 
>   <wsdl:service name="HelloTestService">
> 
>      <wsdl:port name="HelloTest" binding="impl:HelloTestSoapBinding">
> 
>         <wsdlsoap:address
> location="http://localhost:9090/axis/services/HelloTest"/>
> 
>      </wsdl:port>
> 
>   </wsdl:service>
> 
> </wsdl:definitions>
> 
> If i create a client in .net I can receive only first item in the string array.
> any comments....
> 
> Shantanu Chawla
> 
> Graduate Student
> Department of Computer Science,
> San Diego State University
> 


-- 
Davanum Srinivas - http://webservices.apache.org/~dims/