Could someone at least tell me whether multi-dimensional arrays are meant to work in 1.0?  The only reason I am assuming they should is because of the claim on the website that "Axis ... has passed Sun's JAX-RPC and SAAJ compliance tests", and the JAX-RPC specification covers multi-dimensional arrays.
 
I would really appreciate it if anyone could give me even just a simple yes or no answer.
Martin
 
----- Original Message -----
Sent: Friday, October 25, 2002 1:02 PM
Subject: Problem with multi-dimensional array

I just updated to Axis 1.0, but I'm having trouble with a multi-dimensional array.  The client is sending a 2 dimensional array to the server, and everything looks fine in the request, but the server throws an exception when trying to parse it.  I thought axis 1.0 is meant to support multi-dimensional arrays now?
 
Can anyone tell me what's going wrong?
 
Thanks
Martin
 
 
The relevant part of the request looks like this:
 
      <iteratedMergeFieldData xsi:type="ns1:IteratedMergeFieldData">
       <iterationName xsi:type="xsd:string">lineitems</iterationName>
       <fieldValuesArray xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[5]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <item>lineitemvalue0</item>
        <item>lineitemvalue1</item>
        <item>lineitemvalue2</item>
        <item>lineitemvalue3</item>
        <item>lineitemvalue4</item>
       </fieldValuesArray>
       <fieldValuesArray xsi:type="soapenc:Array" soapenc:arrayType="xsd:string[5]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <item>lineitemvalue0</item>
        <item>lineitemvalue1</item>
        <item>lineitemvalue2</item>
        <item>lineitemvalue3</item>
        <item>lineitemvalue4</item>
       </fieldValuesArray>
      </iteratedMergeFieldData>

 
The relevant part of the WSDL looks like this:
 
   <complexType name="IteratedMergeFieldData">
    <sequence>
     <element name="iterationName" nillable="true" type="xsd:string"/>
     <element maxOccurs="unbounded" name="fieldValuesArray" nillable="true" type="impl:ArrayOf_xsd_string"/>
    </sequence>
   </complexType>
   <complexType name="ArrayOf_xsd_string">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/>
     </restriction>
    </complexContent>
   </complexType>

 
The axis log looks like this:
 
761725 [HttpProcessor[8080][4]] ERROR org.apache.axis.encoding.ser.BeanPropertyTarget  - Could not convert [Ljava.lang.String; to bean field 'fieldValuesArray', type [Ljava.lang.String;
761735 [HttpProcessor[8080][4]] ERROR org.apache.axis.transport.http.AxisServlet  - Exception:
AxisFault
 faultCode: {http://xml.apache.org/axis/}Server.userException
 faultString: java.lang.IllegalArgumentException: argument type mismatch
 faultActor: null
 faultDetail:
 stackTrace: java.lang.IllegalArgumentException: argument type mismatch
 at org.apache.axis.encoding.ser.BeanPropertyTarget.set(BeanPropertyTarget.java:175)
 at org.apache.axis.encoding.DeserializerImpl.valueComplete(DeserializerImpl.java:260)
 at org.apache.axis.encoding.ser.ArrayDeserializer.valueComplete(ArrayDeserializer.java:544)
 at org.apache.axis.encoding.DeserializerImpl.endElement(DeserializerImpl.java:502)
 at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:942)
 at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:206)
 at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:684)
 at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:207)
 at org.apache.axis.message.RPCElement.getParams(RPCElement.java:265)
 at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:190)
 at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:276)
 at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
 at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:156)
 at org.apache.axis.SimpleChain.invoke(SimpleChain.java:126)
 at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:437)
 at org.apache.axis.server.AxisServer.invoke(AxisServer.java:316)
 at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:701)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
 at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:335)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
 
etc...
 

Reply via email to