Hi, Handling of arrays for rpc/encoded web services is a suprisingly complex problem. The SOAP spec provides several different, but apparently equivalent, techniques. One of which is that employed by Axis C++ serialiation, another of which is that used by Axis Java.
Regrettably, it would appear the AxisCPP deserializer doesn't handle all the variations. Can you raise a Jira issue for this, including the SOAP messages you give below. Regards, Adrian _______________________________________ Adrian Dick ([EMAIL PROTECTED]) "Jonathan G Beakley \(beakley\)" <[EMAIL PROTECTED]> wrote on 20/03/2006 15:54:59: > I have noticed an inconsistency in the encoding of arrays by Axis Java > clients (created using WSDL2Java) and AxisCPP clients (created using > WSDL2Ws), and I was hoping someone could give me some advice. > > In short, I have the following RPC/encoded WSDL snippet that defines the > array: > > <types> > <schema xmlns="http://www.w3.org/2001/XMLSchema" > targetNamespace="http://localhost/axis/csaapi/xsd"> > <import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/> > <complexType name="ArrayOfInt"> > <complexContent> > <restriction base="soapenc:Array"> > <attribute ref="soapenc:arrayType" > wsdl:arrayType="int[]"/> > </restriction> > </complexContent> > </complexType> > </schema> > </types> > > When I create and run the AxisCPP client, it generates XML that uses > "<item>" to denote the elements in the array: > > <SOAP-ENV:Body> > <ns1:GetNamesByIds > xmlns:ns1="http://localhost/axis/csaapi"> > <objType xsi:type="xsd:int">0</objType> > <idsArray > xmlns:enc="http://www.w3.org/2001/06/soap-encoding" > enc:arrayType="xsd:int[9]"> > <item>1</item> > <item>2</item> > <item>3</item> > </idsArray> > </ns1:GetNamesByIds> > </SOAP-ENV:Body> > > My AxisCPP service handles this just fine. > > BUT, my Java client generates XML that doesn't use the "<item>" > construct, and it causes my CPP service to fail to parse the data. > Here's the Java XML: > > <soapenv:Body> > <ns1:GetNamesByIds > > soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:ns1="http://localhost/axis/csaapi"> > <objType xsi:type="xsd:int">0</objType> > <ids soapenc:arrayType="xsd:int[9]" > xsi:type="soapenc:Array" > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> > <ids xsi:type="xsd:int">1</ids> > <ids xsi:type="xsd:int">2</ids> > <ids xsi:type="xsd:int">3</ids> > </ids> > </ns1:GetNamesByIds> > </soapenv:Body> > > Could someone give me advice on the best way to handle this? Note that > I've already turned the MULTIREF option off to fix a different set of > problems. I'd prefer to keep the RPC/Encoded style if at all possible. > > Thank you very much in advance! > > -Jonathan Beakley > [EMAIL PROTECTED]
