|
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...
|
- REPOST - Problem with multi-dimensional array Martin Jericho
- REPOST - Problem with multi-dimensional array Martin Jericho
