axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Doug Davis" <>
Subject Re: array test
Date Tue, 04 Dec 2001 11:57:32 GMT
I would prefer following the href in all cases - not just for
1/2 of the processing.  Can wait until post-alpha3 I suppose :-(

"Glen Daniels" <> on 12/03/2001 10:13:36 PM

Please respond to

To:   <>
Subject:  Re: array test

Hi Doug:

Well, if you fix the code to match the wsdd in terms of the namespace (one
a slash at the end, the other doesn't), and add a default constructor for
(so the deserializer can create one), your non-wsdl test works fine for

For the rest of y'all, the problem which Doug's referring to has to do with
fact that if you have a WSDL description of a service which has an argument
an array type such as "myNS:ArrayOfInt" (which derives in schema terms from
SOAP:Array), we won't find a serializer registered for that type.  So in

<arg1 href="#id0"/>
<multiref id="id0" xsi:type="SOAP:Array">...

we'd be in the midst of deserializing arg1, notice the lack of xsi:type, so
to find its type from the Call object.  In this case, we imagine the Call
been initialized from the WSDL, so the type which we come up with is
"myNS:ArrayOfInt", which we don't know what to do with.

There are two solutions for this, as far as I can see.  One is to have the
system include inheritance - i.e. we figure out that "myNS:ArrayOfInt" is a
subtype of SOAP:Array, and thus get the right Deserializer.  The other is
revamp the logic in the deserialization system to hold off on determining
type from the Call until its sure that there's no xsi:type on the referent
element (in this case, since there is an xsi:type of SOAP:Array, things
work OK if we could get to it).

The latter one is harder, I think, as it involves some fairly major changes
the system.  The former seems like a better idea to me long run, since it
might open the door for better/richer type checking.

What do y'all think?  (this is all post-alpha-3 anyway, I'm assuming)


----- Original Message -----
From: "Doug Davis" <>
To: <>
Sent: Monday, December 03, 2001 8:47 PM
Subject: array test

> Glen,
>  Here's a testcase showing the array problem I'm having.
> This one doesn't use wsdl but I think it shows the same bug.
> When I run it I get:
> AxisFault
>   faultCode:
>   faultString: No deserializer defined for array type
>   faultActor: null
>   faultDetail:
>         stackTrace: org.xml.sax.SAXException: No deserializer defined for
> array
> type
>         at
> org.apache.axis.encoding.ArraySerializer.onStartElement(ArraySerializ
>   ...
> This seems like a really trivial testcase that should be
> fixed before alpha 3 (assuming the bug isn't in the testcase
> itself :-)
> Just unzip in your web-inf\classes dir and javac *.java
> you can run testClient (no wsdl) or testClient1 (w/wsdl)
> -Dug
> (See attached file:

View raw message