It seems as if the message that is sent to the Soap server is incorrect
 
I call the Soap service as follows
   call = (Call) service.createCall();
   call.setTargetEndpointAddress(new java.net.URL(url));
   String[][] in1 = new String[][]{{"abc","cba"}, {"def","fed"}};
   call.setOperation("move");
   Object resp = call.invoke(new Object[]{in1});
 
Which generates the following Soap message parameter
<arg0>
  <arg0 xsi:type="xsd:string">abc</arg0>
  <arg0 xsi:type="xsd:string">cba</arg0>
  <arg0 xsi:type="xsd:string">def</arg0>
  <arg0 xsi:type="xsd:string">fed</arg0> 
</arg0>
 
But should be generating this (this happens with the old version)
<item soapenc:arrayType="xsd:string[2]">
  <item>abc</item>
  <item>cba</item> 
</item>
<item soapenc:arrayType="xsd:string[2]">
  <item>def</item>
  <item>fed</item> 
</item>
 
Am I doing something wrong, or is there perhaps a problem with axis?
 
----- Original Message -----
From: Jean
Sent: Thursday, June 30, 2005 3:39 PM
Subject: Multi dimensional String array

Hi,
 
I'm trying to call a method with a multi dimensional array as follows
 
public java.lang.String move(java.lang.String[][] in0) throws java.rmi.RemoteException;
 
The problem is that when I do the call my array is not built correctly, the array
new String[][]{{"abc","cba"}, {"def","fed"}};
Should read as follows
0    << [0] abc   << [1] cba
1    << [0] def   << [1] fed
 
But I get the following
0    << [0] abc
1    << [0] cba
2    << [0] def
3    << [0] fed
 
I'm currently using axis 1.2.1 final which gives me this result, one of the axis 1.2 RC versions used to do it correctly but now I have a problem since changing the version.  I don't really want to go back to the RC, how can I get this to work?
 
Regards,
Jean
 

Reply via email to