Cedric, Thanks, actually in identifying the difference between the parameter names that I had you made me take a closer look at the WSDD which as it turns out had a typo (nane instead of name). So with those changes everthing worked ok. Thanks again.
I have however one quick question which you may be able to answer for me, according to the API getOuputParameters() returns a map with the parameter names as strings. However the map I was returned had the parameter names as QName types, is this correct or is it a bug in my version v1.0 of axis ? Thanks, Brian -----Original Message----- From: C�dric Chabanois [mailto:[EMAIL PROTECTED]] Sent: 28 November 2002 15:38 To: '[EMAIL PROTECTED]' Subject: RE: INOUT / OUT parameters > > 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 ************************************************************************** The information contained in this e-mail is confidential, may be privileged and is intended only for the use of the recipient named above. If you are not the intended recipient or a representative of the intended recipient, you have received this e-mail in error and must not copy, use or disclose the contents of this email to anybody else. If you have received this e-mail in error, please notify the sender immediately by return e-mail and permanently delete the copy you received. This email has been swept for computer viruses. However, you should carry out your own virus checks. Registered in Ireland, No. 205721. http://www.FINEOS.com **************************************************************************
