if you need a truly dynamic interface i.e. working with unknown WSDL then you can use one of exsiting WSDL invokers such as Xydra <http://www.extreme.indiana.edu/xgws/xydra/>.I already highlight this issue long ago and no one until now have the solution. The aforementioned JROM is obselete (last updated June 7, 2002), I think the guy who create the API already drop the project which is sad. I already try JROM but its using an obselete version of AXIS so part of the API is not compatible with the current release of AXIS.
However someone already suggest a more crude technique on how to overcome the creation of client stub by generating the complex type on the fly by analysing and parsing the WSDL information. You can view the page here http://www-106.ibm.com/developerworks/webservices/library/ws-udax.html
I also try many different methods like dynamic class loading but failed.
informed me if you manage to overcome this problemi was thinking about this problem for long long time (since i wrote original DynamicInvoker for first version of WSIF about four years ago ...) and it became clear to me that what one need is ability to create XML Infoset that can be *mixed* with Java types.
actual conversion of Java types to XML (and back) i.e. XML-Java binding is left to the time that invocation is executed and XML message is put on the wire. so that means that you should be able to put some parameters as DOM (or toher Infoset) or XmlBeans generated classes, or JavaBeans, or whatnot.
that it hink allows to do both dynamic invocations (such as Xydra) and also to have comfortable and type safe Java classes or anything in betweemn meeting exactly what are the needs and not forcing developer to commit to one particular API ...
i wrote down some more thoughth about what i called "Super Dynamic Invoker" at
http://www.extreme.indiana.edu/~aslom/bnp/sdi/
thanks,
alek
cheers
rosely
----- Original Message ----- From: <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Friday, February 13, 2004 8:59 AM Subject: Dynamic invocation of web services with complex types
Hi people,
I was looking into dynamic invocation of web services for some time. Dynamic invocation would have the advantage of using the wsdl to construct the soap message dynamically, meaning that changes in wsdl could be automatically picked up by the soap executor.
What I have found until now is that both Axis and the Web Service Invocation Framework (originally created by ibm but now also an apache project, http://ws.apache.org/wsif/) allow dynamic invocation. The DynamicInvoker sample demonstrates how it can be done in Axis.
However, there is one caveat for both DynamicInvoker and WSIF: they work, as they are, only with simple java types. If you want to use complex types, you have to have a corresponding Java class created on the client side - which makes dynamic invocation much less 'dynamic' : if the complex types in the wsdl change, you have to change and recompile the corresponding java class.
JROM (Java Record Object Model; http://www.alphaworks.ibm.com/tech/jrom) from alphaworks addresses exactly this problem, and it contains samples which demonstrate Axis and WSIF used together with JROM.
However, I would prefer using Axis alone to solve the problem of Dynamic Invocation with complex types. Anybody solved this using Axis alone and without pre-creating client side java classes to represent the complex types?
Thanks for any hints,
Zoltan Schreter NOKIA, Finland
-- The best way to predict the future is to invent it - Alan Kay