Hi ,

It looks like the error was thrown form the server side when the CXF runtime invoke the service implementor.
Do you do some extra work  on you server side?
Can you show me the server side configuration files?


Willem.
mule1 wrote:
Hello Dan,

I tried several things to debug to see what is going on.

First, I tried to test the sample spring helloworld client application as
standalone client that comes with the cxf download and it works with no
problem.

So, I copied the HelloWorld.java and HelloWorldImpl.java in my application,
did the application deploy in tomcat with the address called "/hello'
exposed for HelloWorld. Then, I ran the testcase using following:


      ClientProxyFactoryBean cf = new ClientProxyFactoryBean();
      cf.setAddress("http://localhost:8083/services/hello";);
      cf.setServiceClass(HelloWorldNew.class);
      HelloWorld service = (HelloWorld) cf.create();
String test = "Hello World Test in Tomcat appserv";
      String response = service.sayHi(test);

And I see following error on the server side:
Caused by: java.lang.IllegalArgumentException: object is not an instance of
declaring class
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:107)
        at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:77)

which is resulting in a CxfFault with message
"org.apache.cxf.interceptor.Fault: object is not an instance of declaring
class"

With debugging, I can see that when NativeMethodAccessorImpl.invoke0 is
called, the String message I pass "Hello World Test in Tomcat appserv" is
there. So, not really sure what makes it give IllegalArgumentException.

I am attaching some of the lines I copied from debug below:
-------------------



Daemon Thread [http-8080-Processor25] (Suspended)       
        IllegalArgumentException.<init>(String) line: 36  
        NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not
available [native method]       
        NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39      
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25  
        Method.invoke(Object, Object...) line: 585      
        BeanInvoker(AbstractInvoker).performInvocation(Exchange, Object, Method,
Object[]) line: 107     
        BeanInvoker(AbstractInvoker).invoke(Exchange, Object, Method, List) 
line:
77      
        BeanInvoker(AbstractInvoker).invoke(Exchange, Object) line: 63  
        ServiceInvokerInterceptor$1.run() line: 56      
        SynchronousExecutor.execute(Runnable) line: 37  
        ServiceInvokerInterceptor.handleMessage(Message) line: 92       
        PhaseInterceptorChain.doIntercept(Message) line: 207    
        ChainInitiationObserver.onMessage(Message) line: 73     
        ServletDestination.doMessage(MessageImpl) line: 79      
        ServletController.invokeDestination(HttpServletRequest,
HttpServletResponse, ServletDestination) line: 235      
        ServletController.invoke(HttpServletRequest, HttpServletResponse) line: 
140     
        CXFServlet(HttpServlet).service(HttpServletRequest, HttpServletResponse)
line: 710       
        CXFServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 
803      
        
---- the values just before it fails with the IllegalArgumentException ----
this    NativeMethodAccessorImpl  (id=7268)     
        method  Method  (id=7242)       
        numInvocations  3       
        parent  DelegatingMethodAccessorImpl  (id=7264) 
arg0    "helloService"        
arg1    Object[1]  (id=7245)    
        [0]     "Hello World Test in Tomcat appserv"  


-------The request message seen in the tcpmon is ---------
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Body><ns1:sayHi
xmlns:ns1="http://comp.com/";><arg0 xmlns="http://comp.com/";>Hello World Test
in Tomcat appserv</arg0></ns1:sayHi></soap:Body></soap:Envelope>

and the response is:
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>object
is not an instance of declaring
class</faultstring></soap:Fault></soap:Body></soap:Envelope>

Reply via email to