I have successfully deployed a Restful service using CXF. 
I couldn’t use the jaxws Spring schema extension tags to define my services
owing to the http://cxf.apache.org/schemas/jaxws.xsd schema not found error.
I declared the service with standard Spring bean tags using the following
snippet:

<bean   id="JaxWsServerFactoryBean-Service-XML"
                        class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"
                        init-method="create">
                <property name="bindingId" 
value="http://apache.org/cxf/binding/http"; />
                <property name="address" value="/xml/myservice/" />
                <property name="serviceClass" value="com.fm.services.IService" 
/>
                <property name="serviceBean">
                        <bean class="com.fm.services.ServiceImpl" />
                </property>
        </bean>

The service deploys fine and I can verify that it works from a browser.

I am attempting to develop a client for this service along the lines of the
MainClient in the restful_http_binding example with the 2.0.1 distribution.
My client looks like the following:
        
       JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); 
        factory.setServiceClass(IService.class); 
       
factory.getClientFactoryBean().setBindingId(HttpBindingFactory.HTTP_BINDING_ID);
       
factory.setAddress("http://server:8080/myapp/services/xml/myservice/";);
        IServiceclient = (IService)factory.create();
        List<Image> retVals = client.doService("foo");

The client proxy is getting created fine, however at the invocation of the
service I see the following exception. The problem seems to arise from the
fact that the verb returned from the URIMapper/BindingOperationInfo is null.
Ulimately, I wish to be able to inject this client via Spring. I’d
appreciate your ideas/information on overcoming this issue.

Thanks
Sriram


Aug 22, 2007 3:48:47 PM
org.apache.cxf.service.factory.ReflectionServiceFactoryBean
buildServiceFromClass
INFO: Creating Service {http://search.services.fm.com/} IServicefrom class
com.fm.services.IService
Aug 22, 2007 3:48:47 PM org.apache.cxf.binding.http.strategy.JRAStrategy map
INFO: Mapping method doService to resource /images/{searchString} and verb
GET
Aug 22, 2007 3:48:49 PM org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
INFO: Interceptor has thrown exception, unwinding now
java.lang.NullPointerException
        at
org.apache.cxf.binding.http.interceptor.DatabindingOutSetupInterceptor.handleMessage(DatabindingOutSetupInterceptor.java:77)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
        at $Proxy22.doService(Unknown Source)
        at com.fm.search.service.ClientTest.plainTest(ClientTest.java:49)
        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.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
        at
org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
        at
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
        at
org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
        at
org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
        at
org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
        at
org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
        at
org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
        at
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
        at 
org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
        at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
        at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
javax.xml.ws.http.HTTPException
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:147)
        at $Proxy22.doSearch(Unknown Source)
        at com.fm.search.service.ClientTest.plainTest(ClientTest.java:49)
        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.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
        at
org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
        at
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
        at
org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
        at
org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
        at
org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
        at
org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
        at
org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
        at
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
        at 
org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
        at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
        at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.lang.NullPointerException
        at
org.apache.cxf.binding.http.interceptor.DatabindingOutSetupInterceptor.handleMessage(DatabindingOutSetupInterceptor.java:77)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
        ... 22 more

-- 
View this message in context: 
http://www.nabble.com/Restful-Service-client-exception-tf4314688.html#a12285030
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to