Hi,
I'm adding web service invocation to a scripting language I'm working
on.  So I want the script action, which has dynamic typing, to call
org.apache.axis.client.Call.invoke() directly - rather than use the
stubs generated by wsdl2java.

For the rpc/encoded case, I'm fine.  For the other messaging styles,
though, I'm confused. The Javadoc for Call.invoke() says:

"""
Invokes the operation associated with this Call object using the passed
in parameters as the arguments to the method. For Messaging (ie.
non-RPC) the params argument should be an array of SOAPBodyElements.
*All* of them need to be SOAPBodyElements, if any of them are not this
method will default back to RPC. In the Messaging case the return value
will be a vector of SOAPBodyElements.
"""

SOAPBodyElement has a number of constructors (none of them javadoc'ed,
unfortunately), but the only one that appears to allow me to set the
content has the signature:

public SOAPBodyElement(org.w3c.dom.Element elem)

This tells me that I need to serialise the message args to DOM elements
first - so that I can then make SOAPBodyElements so that I can then call
Call.invoke().  But I had previously thought that the serialisation of
the arguments to XML happened *after* calling Call.invoke().  So I'm
confused.

My confusion is compounded when I look at the code generated by
wsdl2java for a doc/lit WSDL description.  This generates argument
wrappers (e.g. _InputText in a data/ sub-package) that are *not*
SOAPBodyElements, which appears directly to contradict the Javadoc on
call.invoke().

If anyone would be so kind as to shed some light to dispel my confusion,
I'd be very grateful.

Regards,
Ian

_____________________________________________________________________
Ian Dickinson   HP Labs, Bristol, UK      mailto:[EMAIL PROTECTED]
net www.hpl.hp.com/personal/Ian_Dickinson       ph +44 (117) 312 8796

Reply via email to