You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Dan Armbrust <da...@gmail.com> on 2005/05/26 23:58:08 UTC
1.2 can't handle a simple String[]???
This seems to be a serious regression bug... But maybe I'm doing
something wrong...
I was using 1.2 beta, 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