axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sorin Pop" <>
Subject (de)serialization of an object which contains an array of another custom object without building custom (de)serializer classes
Date Mon, 16 Sep 2002 17:32:58 GMT

allegedly AXIS 1.0rc can handle the (de)serialization of custom objects with
the builtin bean (de)serializer classes (beanmapping tag in the WSDD), and
these custom objects don't necessarily need to have getter/setter methods
anymore, it's enough for the (serializable) members to be declared public.

I tried it out, and it looks like it works, only to a certain point though:
when the custom object contains a public member which is an array of another
custom object. Then AXIS can handle the (de)serialization of the big object
only if I write, like before, a custom (de)serializer class for it (and I
have a typemapping tag in the deploy.wsdd file for the big object). If I use
the beanmapping tag for it, then I get the following error messages (lets
say the big class is called X, the little one Y, so X contains an array of
Ys, which is called y_array):

    java.lang.IllegalArgument Exception: array element type mismatch
    Could not convert [LY; to bean field y_array[0], type Y

I don't know where that [L in front of the class name comes from, maybe the
problem is related to that...
I have checked the SOAP message AXIS gets from the client, and I haven't
seen anything unusual in it. When I comment out the beanmapping tag and
uncover the typemapping tag for the X (yes, X, not Y, Y has a beanmapping
tag) class in the WSDD (which points to the custom (de)serializer classes),
and I redeploy the web service, then it works again.

Has anybody encountered this problem? Any suggestions?


View raw message