Ah, that's surprising somehow. I regarded 'String' as being simple. Must correct my view here.
Thanks, Juliane. ________________________________ From: jayachandra [mailto:[EMAIL PROTECTED] Sent: Montag, 9. Januar 2006 13:42 To: [email protected] Subject: Re: Can't call a Web Service from a Servlet I think float is still a simple type. But 'String' isn't. In the second client the method that you are invoking needs to send String as input parameter which couldn't be marshalled/unmarshalled by Axis. Jaya On 1/9/06, Harbarth, Juliane <[EMAIL PROTECTED]> wrote: Hi Jaya, yes, you are right. The type of the service that was invokable from the most simple client is int to string. The type of the service that needed extra code is string to float. The additional code is: oper.setReturnType(new javax.xml.namespace.QName(" http://www.w3.org/2001/XMLSchema <http://www.w3.org/2001/XMLSchema> ", "float")); Thus int is simple and float is not. Thanks a lot, Juliane. ________________________________ From: jayachandra [mailto: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> ] Sent: Montag, 9. Januar 2006 05:55 To: [email protected] Subject: Re: Can't call a Web Service from a Servlet parameters of first method might have been simple/native types like int etc. which the Axis runtime could have intelligently (un)marshalled, and those of second might not have been so easy ones for which reason extra ParameterDesc object would have helped axis find the proper ser/deser factories to marshall/unmarshall the object. Jaya On 1/6/06, Harbarth, Juliane <[EMAIL PROTECTED]> wrote: Hi, I have made sure that none of the other jars implements the javax.xml.rpc package. But, never mind, it is now working. I have no idea why. There is still one thing that bothers me though. One of the services I am calling can be invoked by using just four lines of code, i.e. Call call = (Call)service.createCall(); call.setTargetEndpointAddress(new URL(wsEndpoint)); call.setOperationName( new javax.xml.namespace.QName(wsNamespace,wsMethod)); ret = call.invoke(val); For another service this simple approach did not work. The invoked service complained that it did not correctly receive the input value. I needed additional code as such: oper = new org.apache.axis.description.OperationDesc(); org.apache.axis.description.ParameterDesc param = new ... oper.addParameter(param); oper.setReturnType(... call.setOperation (oper); Why is this ? Regards & thanks, Juliane. -- -- Jaya
