Your WSDL says the elements are named "string1" and "string2" but the XML in the 
response has them as "String1" and "String2".

Case counts in XML.

--
Tom Jordahl
Macromedia Server Development

-----Original Message-----
From: Steve Pannier [mailto:[EMAIL PROTECTED] 
Sent: Thursday, March 27, 2003 6:45 PM
To: [EMAIL PROTECTED]
Subject: SAXException: Invalid Element error in AXIS client

I'm using an Axis1.1RC2 client to invoke a method that returns a structure
containing 2 strings.  I'm getting the following error from my client:


org.xml.sax.SAXException: Invalid element in
com.test.wsdl_temp.JI_GetString - String1
        at
org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:263)
        at
org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:94
9)
        at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:198)
        at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:718)
        at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:322)
        at
org.apache.axis.message.RPCElement.getParams(RPCElement.java:346)
        at org.apache.axis.client.Call.invoke(Call.java:2234)
        at org.apache.axis.client.Call.invoke(Call.java:2133)
        at org.apache.axis.client.Call.invoke(Call.java:1656)
        at
com.test.wsdl_temp.SoapGWPortSoapBindingStub.getString(SoapGWPortSoapBindingStub.java:142)
        at com.test.wsdl_temp.TestClient.main(TestClient.java:31)


Here's the SOAP response message:

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Date: Thu, 27 Mar 2003 21:51:09 GMT
Server: Apache Coyote/1.0
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>
  <ns1:GetStringResponse soapenv:encodingStyle
="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:ns1
="http://wsdl_temp.test.com";>
   <ns1:OutVar>
    <ns1:String1 xsi:type="xsd:string">Test String1 Value</ns1:String1>
    <ns1:String2 xsi:type="xsd:string">Test String2 Value</ns1:String2>
   </ns1:OutVar>
  </ns1:GetStringResponse>
 </soapenv:Body>
</soapenv:Envelope>


The WSDL I used to create my test client is below.


<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://wsdl_temp.test.com"; xmlns
="http://schemas.xmlsoap.org/wsdl/"; xmlns:apachesoap
="http://xml.apache.org/xml-soap"; xmlns:impl="http://wsdl_temp.test.com";
xmlns:intf="http://wsdl_temp.test.com"; xmlns:soapenc
="http://schemas.xmlsoap.org/soap/encoding/"; 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 targetNamespace="http://wsdl_temp.test.com"; xmlns
="http://www.w3.org/2001/XMLSchema";>
   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="Strings_MLM">
    <sequence>
     <element name="string1" nillable="true" type="xsd:string"/>
     <element name="string2" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="JI_GetString">
    <sequence>
     <element name="outVar" nillable="true" type="impl:Strings_MLM"/>
    </sequence>
   </complexType>
  </schema>
 </wsdl:types>

   <wsdl:message name="GetStringRequest">
   </wsdl:message>
   <wsdl:message name="GetStringResponse">
      <wsdl:part name="GetStringReturn" type="intf:JI_GetString"/>
   </wsdl:message>
   <wsdl:portType name="SoapGW">
      <wsdl:operation name="GetString">
         <wsdl:input message="intf:GetStringRequest" name
="GetStringRequest"/>
         <wsdl:output message="intf:GetStringResponse" name
="GetStringResponse"/>
      </wsdl:operation>
   </wsdl:portType>
   <wsdl:binding name="SoapGWPortSoapBinding" type="intf:SoapGW">
      <wsdlsoap:binding style="rpc" transport
="http://schemas.xmlsoap.org/soap/http"/>
      <wsdl:operation name="GetString">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input name="GetStringRequest">
            <wsdlsoap:body encodingStyle
="http://schemas.xmlsoap.org/soap/encoding/"; namespace
="http://wsdl_temp.test.com"; use="encoded"/>
         </wsdl:input>
         <wsdl:output name="GetStringResponse">
            <wsdlsoap:body encodingStyle
="http://schemas.xmlsoap.org/soap/encoding/"; namespace
="http://wsdl_temp.test.com"; use="encoded"/>
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>
   <wsdl:service name="SoapGW">
      <wsdl:port binding="intf:SoapGWPortSoapBinding" name="SoapGWPort">
         <wsdlsoap:address location
="http://10.150.5.147:8091/JISOAP/SoapGW"/>
      </wsdl:port>
   </wsdl:service>
</wsdl:definitions>



Any ideas as to what the problem is?  Is the SOAP response formatted
incorrectly?  Or could something be wrong in the WSDL file?


Steve Pannier
Jacada, Inc.
(763) 201-0002 Ext. 219
[EMAIL PROTECTED]
http://www.jacada.com

Reply via email to