My comments in <RJS>

Rich Scheuerle
XML & Web Services Development
512-838-5115  (IBM TL 678-5115)


                                                                                       
                                     
                      "Peake, Chris"                                                   
                                     
                      <[EMAIL PROTECTED]        To:       [EMAIL PROTECTED]       
                                     
                      om>                      cc:                                     
                                     
                                               Subject:  RE: Java2WSDL                 
                                     
                      04/19/2002 10:28                                                 
                                     
                      AM                                                               
                                     
                      Please respond to                                                
                                     
                      axis-dev                                                         
                                     
                                                                                       
                                     
                                                                                       
                                     



Another interesting point related to this subject.
The WSDL that gets generated has 'all' the public fields in the <sequence>
element of <types>.
Even if no get/set (i.e. bean structure) is present.
The generated clients for a complex type will then have get/sets created
for 'all' the fields in the <sequence> tag of the <types>.
So the bean description on client does not match the bean on server side
provided the web service bean had public fields 'without' get/set
structure.

<RJS> I agree that the client side bean class may have additional
getters/setters, but this should be okay. </RJS>


So if sending a complex type from the client to server, you will get an
exception since the 'BeanPropertyDescriptor' is based solely on
introspection of a bean that has get/set structure.
So the client sends all get/set type fields since getPD was used in
BeanSerializer and the complext type was generted with get/set for 'each'
field as described in WSDL.  But on the server side, the same getPD on
BeanSerializer (called by BeanDeserializer) doesn't know about this 'extra'
get/set field because there is no get/set method for the field as there was
on the client.

<RJS> Yes this does seem to be a problem if the code is behaving the way
you say.  The BeanDeserializer should set the public field directly if
there is no setter. </RJS>

It seems logical that if using something like 'ClassRep' instead of relying
on introspection for 'PropertyDescriptors' that we could send the public
fields of the type as well without relying on only fields that have get/set
structure.  If WSDL is generating the <type> this way, it seems to make
sense that the public fields should 'not' be restricted.  Even though the
bean spec points out how to access fields, I didn't think it restricted it.
Even if it did, if WSDL is going to behave as it does currently, which I
think is correct, then the serialization/derserialization maybe should
evolve too.

Also, I thought TypeDesc required a bean to have certain methods present
like "getTypeDesc" and "_Helper".  If not there I thought typedesc was null
and basic introspection took place then.
I've just started looking at this, I could be way off or must be, because
that would not make sense.

chris



-----Original Message-----
From: Benazech Cédric [mailto:[EMAIL PROTECTED]]
Sent: Friday, April 19, 2002 8:11 AM
To: '[EMAIL PROTECTED]'
Subject: RE: Java2WSDL


Just a comment :
I've seen that BeanSerializer uses *Rep AND *Desc  ... AND
PropertyDescriptor AND BeanPropertyDescriptor.

I think it should be a good Idea to use only one of these classes that have
almost the same purpose.

Cédric

note : I'm not sure but I think that BeanPropertyDescriptor (that sort
fields) isn't usefull.


-----Message d'origine-----
De : R J Scheuerle Jr [mailto:[EMAIL PROTECTED]]
Envoyé : vendredi 19 avril 2002 14:49
À : [EMAIL PROTECTED]
Objet : Java2WSDL


The purpose for the ClassRep and other *Rep classes in Java2WSDL was
to provide a model to represent the Java information.  A user of the
emitter would then
have the capability to override the ClassRep to populate the Java
information in another
way.

But now this pluggability has been completely removed.  Java2WSDL now uses
the *Desc model exclusively.  So in the attempt to move forward, we have
lost some
more pluggability.  Note that the *Rep model was useful for representing
just
the Java information.  The *Desc model is a combined Java/XML model, so
they
are not the same thing.

Glen, if you don't want the ClassRep stuff anymore, please remove it
completely...and
all the pluggable stuff that I added since they are no longer of any use.

You win.

Rich Scheuerle
XML & Web Services Development
512-838-5115  (IBM TL 678-5115)



Reply via email to