Hi All,
I am having some problems invoking a web service with IN, OUT, and INOUT
parameters.
The signature of the services is below:
public void process(HashtableHolder params, HashMap inputDesc, HashMapHolder
outputDesc, HashMap input, HashMapHolder output) throws Exception {
...}
and its corresponding deployment entry is:
<operation name="process">
<parameter name="parameters" mode="INOUT"/>
<parameter name="inputDescriptors" mode="IN"/>
<parameter name="outputDescriptors" mode="OUT"/>
<parameter name="input" mode="IN"/>
<parameter name="output" mode="OUT"/>
</operation>
I have tried invoking it with the following:
call.addParameter( "params", new QName("http://soapinterop.org/", "params"),
ParameterMode.INOUT );
call.addParameter( "inputDesc", new QName("http://soapinterop.org/",
"inputDesc"),ParameterMode.IN);
call.addParameter( "outputDesc", new QName("http://soapinterop.org/",
"outputDesc"),ParameterMode.OUT);
call.addParameter( "input", new QName("http://soapinterop.org/",
"input"),ParameterMode.IN);
call.addParameter( "output", new QName("http://soapinterop.org/",
"output"),ParameterMode.OUT);
call.invoke( new Object[] { params, inputDesc, input } );
But this throws an Illegal argument exception.
Tried to invoke method public void
com.kensingtonspace.sdk.webservice.RemoteNode.process(com.kensingtonspace.sd
k.webservice.holders.HashtableHolder,java.util.HashMap,com.kensingtonspace.s
dk.webservice.holders.HashMapHolder,java.util.HashMap,com.kensingtonspace.sd
k.webservice.holders.HashMapHolder) throws
com.kensingtonspace.sdk.node.NodeException with arguments
com.kensingtonspace.sdk.webservice.holders.HashtableHolder,java.util.HashMap
,java.util.HashMap,com.kensingtonspace.sdk.webservice.holders.HashMapHolder,
com.kensingtonspace.sdk.webservice.holders.HashMapHolder. The arguments do
not match the signature.; nested exception is:
java.lang.IllegalArgumentException: argument type mismatch
Relevant part of the request SOAP message is below:
<soapenv:Body>
<ns1:process
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:ns1="http://soapinterop.org/">
<params href="#id0"/>
<inputDesc href="#id1"/>
<input href="#id2"/>
</ns1:process>
Does anyone have any suggestions please? From the error message it seems
that the 3rd and 4th parameters are being swaped but I don't know how this
is happening.
Thanks for any help.
Kind Regards
Mauro