Brian told me that Call.getOutputParameters should return a map with the
parameter names as strings.

According to the specification, he is right :
"
getOutputParams
public java.util.Map getOutputParams()
Returns a Map of {name, value} for the output parameters of the last invoked
operation. 
The parameter names in the returned Map are of type java.lang.String.
Returns:
Map Output parameters for the last Call.invoke(). Empty Map is returned if
there are no output parameters
"

But we return a map with the parameter names as QNames

So, are we JAX-RPC compliant here ?


Cédric


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

Reply via email to