You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by rosely kumoi <ce...@macs.hw.ac.uk> on 2003/05/29 14:35:38 UTC

AXIS DII Question

hi all,

Sorry for the long question:

Sometime, a service is discovered dynamically and usually info that can 
be gathered from the UDDI, is the WSDL document. 

My question is about the use of JavaBeans in the service parameter:

1) How to get the actual service JavaBeans to be registered dynamically so that
can be used by the ServiceClient. From example5 sample userguide, any JavaBean
that need to be used as parameter must have its BeansSerializer created by the 
ServiceClient class:


QName qn = new QName( "urn:URNName", "ServiceBeanName");
call.registerTypeMapping(java.Bean.Name.class, qn,
     new org.apache.axis.encoding.ser.BeanSerializerFactory(java.Bean.Name.class, qn),
     new org.apache.axis.encoding.ser.BeanDeserializerFactory(java.Bean.Name.class, qn));
     
to use any java class, the class must be existed in the classpath, is it possible to do this
by using only the WSDL doc, create the JavaBeans class at runtime and dynamically loading them into
the service client, create the beanSerializer and invoke the service?

in the Sun JAX-RPC tutorial, its only using a sample HelloWorld with a string as a paramter,
which is totally not inline with the real world when most parameter is a full blown JavaBean
classes. 

summary of operation needed:

1) Generate the JavaBeans class thorugh the WSDL-URL dynamically at "RUNTIME" and stored them locally.
2) Register the new generated JavaBeans in the classpath or probably do the 
dynamic class loading
3) Create the BeanSerializer dynamically
4) Add the parameter
5) Invoke the service

is 1, 2 and 3 ARE supported by AXIS?

thanx in advance for any pointers

rosely