Upgrade to Axis 1.4. On Thu, Feb 21, 2008 at 4:11 PM, Alick Buckley <[EMAIL PROTECTED]> wrote: > > > Hi Gordon, > > This type of problem has been posted before, it was quite some time ago, you > could search Axis mail list. > > You could look at upgrading from Axis 1.3 to Axis 1.4. > > I had no problems when upgrading from Axis 1.3 to Axis 1.4. > > I use Axis 1.4 and have no problems with sending and receiving int arrays. > > I happen to have a test SOAP service that sends and receive numbers inside a > bean. ( See attachments ) > > Attached is the WSDL and a sample SOAP request message. > > > I use Axis in a custom built standalone mode. > > Note: When I create a JavaBean class, I also include the Apache Axis > Meta-Data, to help the Axis serialization process. > > > ================================================================ > > elemField = new org.apache.axis.description.ElementDesc () ; > > > elemField.setFieldName ( "a_int" ) ; > > elemField.setXmlName ( new javax.xml.namespace.QName ( > "http://soap.service.acme.com", "a_int" ) ) ; > > elemField.setXmlType ( new javax.xml.namespace.QName ( > "http://www.w3.org/2001/XMLSchema", "int" ) ) ; > > elemField.setNillable ( true ) ; > > elemField.setItemQName ( new javax.xml.namespace.QName ( > "http://soap.service.acme.com", "item" ) ) ; // int array > > typeDesc.addFieldDesc ( elemField ) ; > > > ================================================================ > > SOAP message using int [] > > <?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> > <getNumber xmlns="http://soap.service.acme.com"> > <param1> > <a_byte>XXXXX</a_byte> > <a_int> > <item>123</item> > <item>456</item> > </a_int> > <n_double>20.1</n_double> > <n_float>21.11</n_float> > <n_int>22</n_int> > <n_long>22345678</n_long> > <o_bigdecimal>223.546</o_bigdecimal> > <o_biginteger>22385943</o_biginteger> > <o_double>2435.456</o_double> > <o_int>23245</o_int> > </param1> > </getNumber> > </soapenv:Body> > </soapenv:Envelope> > > > ================================================================ > > <schema elementFormDefault="qualified" > targetNamespace="http://soap.service.acme.com" > xmlns="http://www.w3.org/2001/XMLSchema"> > > <element name="getNumber"> > <complexType> > <sequence> > <element name="param1" type="impl:EveryNumber"/> > </sequence> > </complexType> > </element> > > <complexType name="ArrayOf_xsd_int"> > <sequence> > <element maxOccurs="unbounded" minOccurs="0" name="item" > type="xsd:int"/> > </sequence> > > </complexType> > > <complexType name="EveryNumber"> > <sequence> > <element maxOccurs="1" minOccurs="0" name="a_byte" nillable="true" > type="xsd:base64Binary"/> > <element name="a_int" nillable="true" type="impl:ArrayOf_xsd_int"/> > <element name="n_double" type="xsd:double"/> > <element name="n_float" type="xsd:float"/> > <element name="n_int" type="xsd:int"/> > <element name="n_long" type="xsd:long"/> > <element maxOccurs="1" minOccurs="0" name="o_bigdecimal" > nillable="true" type="xsd:decimal"/> > <element maxOccurs="1" minOccurs="0" name="o_biginteger" > nillable="true" type="xsd:integer"/> > <element maxOccurs="1" minOccurs="0" name="o_double" nillable="true" > type="xsd:double"/> > <element maxOccurs="1" minOccurs="0" name="o_int" nillable="true" > type="xsd:int"/> > </sequence> > </complexType> > > > ================================================================ > > [Alick Buckley] > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: Thursday, 21 February 2008 11:58 PM > To: [email protected] > > Subject: Re: Badly formed XML response with array of complex types > > > > > > Hi Everybody > > I am getting the same problem even when the return object only has an array > of primitives > > Response message from web service is; > > <?xml version="1.0" encoding="utf-16"?> > <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> > <getTestDataResponse xmlns="http://access.cobra.chubb.com"> > <getTestDataReturn> > > <!-- *** <testInts> tag is repeated both for the array itself and each of > its elements!!! *** --> > > <testInts> > <testInts>1</testInts> > </testInts> > > <testSting>ohmygosh!</testSting> > </getTestDataReturn> > </getTestDataResponse> > </soapenv:Body> > </soapenv:Envelope> > > I'm sure I must be missing something really obvious here. > > The object I am returning is of type TestData and is defined as follows; > > package com.chubb.cobra.model.echo; > > public class TestData { > > private String testString; > private int[] testInts = null; > > public TestData() { > } > > public int[] getTestInts() { > return testInts; > } > public void setTestInts(int[] testInts) { > this.testInts = testInts; > } > public String getTestString() { > return this.testString; > } > public void setTestString(String testString) { > this.testString = testString; > } > } > > I'm new to web services and I really would appreciate any suggestions on > what I could be doing wrong here as it's really holding me up > > Thanks > > Gordon > > [EMAIL PROTECTED] > > > > > > > > [EMAIL PROTECTED] > > 18/02/2008 15:00 > > Please respond to > [email protected] > > > To > [email protected] > > > cc > > > > Subject > Badly formed XML response with array of complex types > > Hi > > I am having a problem using Axis 1.3 to create a web service with a complex > return type. > > My example is pretty simple: > > In my Java code I am returning a single Vehicle object which has a RegNumber > int field and an array of VehicleDriver objects each of which has a driverId > int field and a driverName String field. > > The problem I am getting is that in the xml response that is being sent to > my .NET client the driver array tag and the tags for the individual drivers > themselves are both getting the name of the driver array in my Java code. > > To clarify, this is the response I'm getting: > > ResponseCode: 200 (OK) > Date:Fri, 15 Feb 2008 17:54:49 GMT > Server:WebLogic Server 8.1 SP2 Fri Dec 5 15:01:51 PST 2003 316284 > Content-Type:text/xml; charset=utf-8 > Transfer-Encoding:chunked > > <?xml version="1.0" encoding="utf-16"?> > <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> > <getVehicleResponse xmlns="http://access.cobra.chubb.com"> > <getVehicleReturn> > <drivers> > <drivers> > <driverId>1</driverId> > <driverName>Mr Ian Edward Wit</driverName> > </drivers> > <drivers> > <driverId>2</driverId> > <driverName>Mrs Deborah Wit</driverName> > </drivers> > </drivers> > <regNumber>358 JWP</regNumber> > </getVehicleReturn> > </getVehicleResponse> > </soapenv:Body> > </soapenv:Envelope> > > My wsdl looks like this: > > <?xml version="1.0" encoding="UTF-8"?> > <wsdl:definitions > targetNamespace="http://localhost:7001/services/services/ServicesFacade" > xmlns:apachesoap="http://xml.apache.org/xml-soap" > xmlns:impl="http://localhost:7001/services/services/ServicesFacade" > xmlns:intf="http://localhost:7001/services/services/ServicesFacade" > xmlns:tns1="http://access.cobra.chubb.com" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <!--WSDL created by Apache Axis version: 1.3 > Built on Oct 05, 2005 (05:23:37 EDT)--> > <wsdl:types> > <schema elementFormDefault="qualified" > targetNamespace="http://access.cobra.chubb.com" > xmlns="http://www.w3.org/2001/XMLSchema"> > <import namespace="http://localhost:7001/services/services/ServicesFacade"/> > <element name="getVehicle"> > <complexType> > <sequence> > <element name="policyItemId" type="xsd:int"/> > </sequence> > </complexType> > </element> > <element name="getVehicleResponse"> > <complexType> > <sequence> > <element name="getVehicleReturn" type="impl:Vehicle"/> > </sequence> > </complexType> > </element> > </schema> > <schema elementFormDefault="qualified" > targetNamespace="http://localhost:7001/services/services/ServicesFacade" > xmlns="http://www.w3.org/2001/XMLSchema"> > <complexType name="VehicleDriver"> > <sequence> > <element name="driverId" type="xsd:int"/> > <element name="driverName" nillable="true" type="xsd:string"/> > </sequence> > </complexType> > <complexType name="ArrayOfVehicleDriver"> > <sequence> > <element maxOccurs="unbounded" minOccurs="0" name="item" > type="impl:VehicleDriver"/> > </sequence> > </complexType> > <complexType name="Vehicle"> > <sequence> > <element name="drivers" nillable="true" type="impl:ArrayOfVehicleDriver"/> > <element name="regNumber" nillable="true" type="xsd:string"/> > </sequence> > </complexType> > </schema> > </wsdl:types> > <wsdl:message name="getVehicleRequest"> > <wsdl:part element="tns1:getVehicle" name="parameters"/> > </wsdl:message> > <wsdl:message name="getVehicleResponse"> > <wsdl:part element="tns1:getVehicleResponse" name="parameters"/> > </wsdl:message> > <wsdl:portType name="ServicesFacade"> > <wsdl:operation name="getVehicle"> > <wsdl:input message="impl:getVehicleRequest" name="getVehicleRequest"/> > <wsdl:output message="impl:getVehicleResponse" name="getVehicleResponse"/> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="ServicesFacadeSoapBinding" type="impl:ServicesFacade"> > <wsdlsoap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="getVehicle"> > <wsdlsoap:operation soapAction=""/> > <wsdl:input name="getVehicleRequest"> > <wsdlsoap:body use="literal"/> > </wsdl:input> > <wsdl:output name="getVehicleResponse"> > <wsdlsoap:body use="literal"/> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name="ServicesFacadeService"> > <wsdl:port binding="impl:ServicesFacadeSoapBinding" name="ServicesFacade"> > <wsdlsoap:address > location="http://localhost:7001/services/services/ServicesFacade"/> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > > This seems to result in the returned data not coming through as I guess the > response doesn't really make sense. > Has anyone else experienced the same problem and if so what do I need to > change to fix it??? > > Any help would be greatly appreciated. > > Cheers > > Gordon > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] >
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
