Hmm, I'm really not very familiar with the axis development or testing environments.  Otherwise I would attempt to fix it myself...

Is there an official bug open for this, or workarounds?  This is a show stopping bug for me.... 

Dan

Tom Jordahl wrote:

Hi Dan,

 

Yes, I think we do have some serious regressions in the array area since RC2.

 

Test cases that run in our harness would be most welcome, that will ensure that we don’t break it again.  L

 

--
Tom Jordahl
Macromedia Server Development


From: Dan Armbrust [mailto:[EMAIL PROTECTED]]
Sent: Friday, May 27, 2005 11:18 AM
To: axis-dev@ws.apache.org
Subject: String Array regression?

 

This seems to be a serious regression bug... But maybe I'm doing something wrong...

I was using 1.2 RC2, and everything was working for me.  Now under 1.2 final, the handling of arrays appears broken.

Here is the error:
org.apache.axis.AxisFaultorg.xml.sax.SAXException: Found character data inside an array element while deserializing

Here is the message that it choked on:
<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>
   <getSupportedMatchAlgorithmsResponse xmlns="urn://hl7.org/CTSVAPI">
     <getSupportedMatchAlgorithmsReturn xmlns:ns1="urn://hl7.org/CTSVAPI" xsi:type="ns1:ArrayOf_xsd_string">IdenticalIgnoreCase</getSupportedMatchAlgorithmsReturn>
     <getSupportedMatchAlgorithmsReturn>StartsWithIgnoreCase</getSupportedMatchAlgorithmsReturn>
     <getSupportedMatchAlgorithmsReturn>EndsWithIgnoreCase</getSupportedMatchAlgorithmsReturn>
     <getSupportedMatchAlgorithmsReturn>ContainsPhraseIgnoreCase</getSupportedMatchAlgorithmsReturn>
   </getSupportedMatchAlgorithmsResponse>
 </soapenv:Body>
</soapenv:Envelope>


What it is supposed to be returning is a simple String[].
A snippit  from the wsdl file:
  <element name="getSupportedMatchAlgorithms">
   <complexType/>
  </element>
  <element name="getSupportedMatchAlgorithmsResponse">
   <complexType>
    <sequence>
     <element maxOccurs="unbounded" name="getSupportedMatchAlgorithmsReturn" type="xsd:string"/>
    </sequence>
   </complexType>
  </element>


My build process is kind of complicated - my initial definition of the API is in IDL.  The idl is compiled into Java.  Then, my WSDL is generated by the java2wsdl tool, using the "-y WRAPPED"  option.

Then, I generate java using wsdl2java tool - and I implement my API using the resulting java classes.  One thing that I noted here, was that 1.2 beta generated  "ArrayOf_X" classes  for each array object, while 1.2 final does not generate any ArrayOf_X classes.

Finally I install the code into my Axis server, and try it out.  I can call most of the methods in my API - but anything that returns an Array throws an exception, as detailed above.

Thanks for any advice,

Dan







Reply via email to