>
> Cedric,
>
> At the moment I have a WSDD which defines;
>
> <operation name="myTestCall">
> <parameter nane="myStr" type="tns:string"
> xmlns:tns="http://www.w3.org/2001/XMLSchema" mode="INOUT"/>
> </operation>
>
> In my Implementation code I have a method with signature;
>
> public String myTestCall(StringHolder in0) throws
> java.rmi.RemoteException;
>
> This seems to deploy ok (and the WSDL looks ok i.e. it has a
> response type
> which contains an extra String for the INOUT parameter).
>
> <wsdl:message name="myTestCallResponse">
> <wsdl:part name="myTestCallReturn" type="xsd:string"/>
> <wsdl:part type="xsd:string"/>
> </wsdl:message>
>
> My problem is, since I am not using generated stubs and
> skeletons how should
> my client call the service ?
>
> This is what I am using;
>
> cll.addParameter("testParam",
> org.apache.axis.Constants.XSD_STRING,
> javax.xml.rpc.ParameterMode.INOUT);
> cll.setReturnType(org.apache.axis.Constants.XSD_STRING);
> String strXmlOid = "Some arbitrary string";
> javax.xml.rpc.holders.StringHolder xmlOid = new
> javax.xml.rpc.holders.StringHolder(strXmlOid);
> String ret = (String) cll.invoke( new Object[] {xmlOid} );
>
Don't put the holder as the parameter but the value itself :
String ret = (String) cll.invoke( new Object[] {strXmlOid} );
then get the output parameters :
java.util.Map output = cll.getOutputParams();
xmlOid.value = (java.lang.String) output.get("testParam");
But why in your sample, your parameter is named "testParam" but in your wsdd
myStr ?
C�dric Chabanois