you aren't the first though :-)
For a typical java guy String becomes so 'simple' that we forget that its java.lang.String and treat it to be just as much primitive as an int or float is.
Jaya
On 1/9/06, Harbarth, Juliane <[EMAIL PROTECTED]> wrote:
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
--
-- Jaya
