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 

Reply via email to