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

Reply via email to