String Array Regression causes SAXException: Found character data ...
---------------------------------------------------------------------

         Key: AXIS-2021
         URL: http://issues.apache.org/jira/browse/AXIS-2021
     Project: Axis
        Type: Bug
  Components: Serialization/Deserialization  
    Versions: 1.2    
 Environment: Server - Tomcat 5.0.25 on Java 1.4.2_01 on Fedora Core 3
Client - Axis running on Java 1.4.2_05 On Window XP SP2
    Reporter: Dan Armbrust
    Priority: Blocker



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>

So I don't know why that ArrayOf_xsd_string gunk is in the response.

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 rc2 
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 a String Array 
throws the SAXException (as noted above) while trying to parse the response, 
which has stuff in it it shouldn't.


Dan










-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to