DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12803>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12803

(de)serialization of an object which contains an array of another custom object 
without building custom (de)serializer classes

           Summary: (de)serialization of an object which contains an array
                    of another custom object without building custom
                    (de)serializer classes
           Product: Axis
           Version: beta-3
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Serialization/Deserialization
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Hi,

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 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.

Or, I can also make it work if I make a getter/setter method pair for the 
member which is an array of Ys (and using then beanpaiing for both X and Y in 
the deploy.wsdd).

I wonder if this is a bug.


Thanks.

Reply via email to