axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jagannath <jagann...@adventnet.com>
Subject problems retrieving the value of ArrayList of Object Array
Date Mon, 12 Apr 2004 06:30:41 GMT
Guys,

Any update on this.

Please help as this is urgent to me.

Please let me know if any other information is required.

Regards,
Jagannath


Hello Users,

I am facing problems retrieving the value of ArrayList of Object Array 
using client stubs generated using WSDL2Java. The ObjectArray has just a 
string in it.

I have a method in my WebService that returns an java.util.ArrayList of 
ObjectArray. For this I have written serializer for ArrayList and 
defined the ArrayOfObject in my wsdl file as shown below

<complexType name="ArrayList">
    <all>
         <element name="item" minOccurs="0" maxOccurs="unbounded" 
type="xsd:anyType"/>
    </all>
</complexType>

<complexType name="ArrayOfObject">
    <complexContent>
                <restriction base="soapenc:Array">
                    <attribute ref="soapenc:arrayType" 
wsdl:arrayType="xsd:anyType[]"/>
                </restriction>
    </complexContent>
</complexType>

The ArrayList.java that is generated is attached with this mail.

What is happening is I only get the String present in the last 
ObjectArray added in the ArrayList. When I have a ArrayList that 
contains String I am able to fetch all the values.

For further reference please refer the tcpmon response for ArrayList of 
String and ArrayList of ObjectArray below

----------ArrayList with ObjectArray---------------

<?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:invokeResponse 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://localhost:7001/jmx/soapServices/AdventNetSoapAgent">
   <invokeReturn href="#id0"/>
  </ns1:invokeResponse>
  <multiRef id="id0" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns2:ArrayList" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns2="urn:AdventNetSoapAgentTypes">
   <item xsi:type="ns2:ArrayOfObject">
    <item xsi:type="xsd:string">33333333</item>
   </item>
   <item xsi:type="ns2:ArrayOfObject">
    <item xsi:type="xsd:string">222222222</item>
   </item>
   <item xsi:type="ns2:ArrayOfObject">
    <item xsi:type="xsd:string">334444444</item>
   </item>
  </multiRef>
 </soapenv:Body>
</soapenv:Envelope>

----------ArrayList with ObjectArray---------------

----------ArrayList with String---------------

<?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:invokeResponse 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns1="http://localhost:7001/jmx/soapServices/AdventNetSoapAgent">
   <invokeReturn href="#id0"/>
  </ns1:invokeResponse>
  <multiRef id="id0" soapenc:root="0" 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xsi:type="ns2:ArrayList" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns2="urn:AdventNetSoapAgentTypes">
   <item xsi:type="xsd:string">33333333</item>
   <item xsi:type="xsd:string">222222222</item>
   <item xsi:type="xsd:string">334444444</item>
  </multiRef>
 </soapenv:Body>
</soapenv:Envelope>

----------ArrayList with String---------------

I tried some debugging by putting print statements in the /setItem/ 
method of ArrayList stub.

I found that for ArrayList with three Strings the method gets called 
three times with the Object[] passed having 1,2 and 3 elements it. That 
is in the third call the Object[] passed has all the 3 Strings in it.

But for ArrayList with Object[] in it, though the setItem method gets 
called three times the Object[] passed has only one element in it. So 
only the last element gets stored in the ArrayList stub.

Hope I am clear.

I am using AXIS1.0 version.

Is this an issue with AXIS or am I missing something.

Please help as this is urgent to me.

Thanks,

-- 
-------------------------------------------------------
Jagannath.C
AdventNet ManageEngine JMX Studio
Off : 2243115 Extn:5252
Nortel: +91-925-895-6380
www.adventnet.com
-------------------------------------------------------

Mime
View raw message