You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Pe...@swisscom.com on 2002/08/30 11:13:42 UTC

BeanDeserializer

Hi,
 
I wrote a SOAP proxy class to make SOAP request easier (for standard
situations).
In that class, I register the BeanSerializer/Deserializer as standard
for each non primitive class.
Unfortunately, things don't work completely. Now I'm not sure if I'm
understanding things wrong (the encoding stuff is quite complicated) or
if this really is a problem in the code.
 
The problem, as far as I understand it is in
org.apache.axis.encoding.ser.BeanDeserializer.onStartChild().
In this method, about 20 line from the beginning, there is a lookup for
a field with the requested name. Unfortunately, the local name given
starts with an upper case letter and the one stored in the propertyMap
is derived from the class field name, i.e. starts with a lower case. If
I check the propertyMap for the same name but starting with a lower case
letter, things seem to work. 
 
I know that this could be prevented by implemented a getTypeDesc()
method in the class, which then correctly sets the types. But as far as
I understood, the check for the field is there just for the case a
getTypeDesc() method is not available. And for my proxy, it's much
easier to generally register all complex types to the
BeanSerializer/Deserializer than to have each invididual class to
provide these methods.
 
Can anybody enlighten me if this is really a problem in the code or if
I'm completely wrong.
 
Thanks for your time.
 
Peter
 
----------------------------------------------------------------------
Peter Balsiger                                  Tel.: +41-31-342 76 80
Swisscom Innovations                            Fax.: +41-31-342 99 03
Ostermundigenstr. 93               e-mail: peter.balsiger@swisscom.com
3050 Bern