> 
> 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

Reply via email to