[ 
http://issues.apache.org/jira/browse/AXIS-2021?page=comments#action_12313199 ] 

Dan Armbrust commented on AXIS-2021:
------------------------------------

Ok, I just verified that your suggestion fixes the problem.  

In the parameters, I changed all my patterns of 

<element maxOccurs="unbounded" name="properties" type="xsd:string"/> 

to this

<element name="properties" nillable="true" type="impl:ArrayOf_xsd_string"/> 

And it works correctly.  Then I discovered that the same bug affects things 
that return a simple String [] as well - the 1.2.1 daily build was generated 
this snippit of code (from the VocabBrower.wsdl attached to this bug)

<element name="getSupportedMatchAlgorithmsResponse">
    <complexType>
     <sequence>
      <element maxOccurs="unbounded" name="getSupportedMatchAlgorithmsReturn" 
type="xsd:string"/>
     </sequence>
    </complexType>
   </element>

I changed this to 

   <element name="getSupportedMatchAlgorithmsResponse">
    <complexType>
     <sequence>
      <element name="getSupportedMatchAlgorithmsReturn" nillable="true" 
type="impl:ArrayOf_xsd_string"/> 
     </sequence>
    </complexType>
   </element>

And now that works as well.  Thank you very much for tracking this down - at 
least now I know how to hack it if necessary, so I can start using the 1.2.1 
release - even if the proper fix doesn't make it into the java2wsdl tool in 
time.


> 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
>  Attachments: VocabBrowser.wsdl, VocabBrowser.wsdl, java.zip
>
> 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