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