Ok, I see the problem. Your service is using wrapped mode, unfortunately 
URIMapper did not handle Wrapped/Unwrapped operation correctly. I have filed 
JIRA cxf-938 for this.

Thanks,
Jervis

> -----Original Message-----
> From: Sric [mailto:[EMAIL PROTECTED]
> Sent: 2007年8月23日 23:22
> To: [email protected]
> Subject: RE: Restful Service client exception
> 
> 
> 
> Jervis,
> Thanks for your reply.
> 
> The interface code is as follows:
> 
> package com.fm.services;
>       
>       import javax.jws.WebParam;
>       import javax.jws.WebService;
>       import javax.jws.WebResult;
>       
>       import org.codehaus.jra.Get;
>       import org.codehaus.jra.HttpResource;
>       
>       import java.util.List;
>       
>       @WebService
>       public interface IService  
>       { 
>               @Get
>               @HttpResource(location="/images/{searchString}")
>               @WebResult(name = "result")
>               public List<Image> 
> doService(@WebParam(name="searchString") String
> searchString);
>         }
> 
> The implementation class is as follows:
> 
> package com.fm.services;      
>       
>       public class ServiceImpl  implements IService
>       {       
>       public List<Image> doSearch(String searchString)
>       {
>               List<Image> results = new ArrayList<Image>();
>               // Populate the results
>               return results;
>       }
>       }
> 
> If I change the List<Image> to a List<String>, I see the same 
> exception from
> my client. The rest invocation from a browser returns the 
> correct values
> though.  
> 
> Thanks
> Sriram
> 
> 
> Liu, Jervis wrote:
> > 
> > Could you please paste out your com.fm.services.ServiceImpl and
> > com.fm.services.IService code? I noticed that 
> client.doService("foo")
> > returns a List<Image>. Not sure what your code looks like, 
> but this might
> > be the place where the problem comes from.
> > 
> > Cheers,
> > Jervis
> > 
> >> -----Original Message-----
> >> From: Sric [mailto:[EMAIL PROTECTED]
> >> Sent: 2007年8月23日 7:43
> >> To: [email protected]
> >> Subject: Restful Service client exception
> >> 
> >> 
> >> 
> >> 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/myse
> >> rvice/");
> >>         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.DatabindingOutSetupInt
> >> erceptor.handleMessage(DatabindingOutSetupInterceptor.java:77)
> >>    at
> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIn
> >> terceptorChain.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(NativeMethodAccess
> >> orImpl.java:39)
> >>    at
> >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth
> >> odAccessorImpl.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(Tes
> >> tMethodRunner.java:81)
> >>    at
> >> org.junit.internal.runners.BeforeAndAfterRunner.runProtected(B
> >> eforeAndAfterRunner.java:34)
> >>    at
> >> org.junit.internal.runners.TestMethodRunner.runMethod(TestMeth
> >> odRunner.java:75)
> >>    at
> >> org.junit.internal.runners.TestMethodRunner.run(TestMethodRunn
> >> er.java:45)
> >>    at
> >> org.junit.internal.runners.TestClassMethodsRunner.invokeTestMe
> >> thod(TestClassMethodsRunner.java:66)
> >>    at
> >> org.junit.internal.runners.TestClassMethodsRunner.run(TestClas
> >> sMethodsRunner.java:35)
> >>    at
> >> org.junit.internal.runners.TestClassRunner$1.runUnprotected(Te
> >> stClassRunner.java:42)
> >>    at
> >> org.junit.internal.runners.BeforeAndAfterRunner.runProtected(B
> >> eforeAndAfterRunner.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(TestEx
> >> ecution.java:38)
> >>    at
> >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTest
> >> s(RemoteTestRunner.java:460)
> >>    at
> >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTest
> >> s(RemoteTestRunner.java:673)
> >>    at
> >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(Rem
> >> oteTestRunner.java:386)
> >>    at
> >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(Re
> >> moteTestRunner.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(NativeMethodAccess
> >> orImpl.java:39)
> >>    at
> >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth
> >> odAccessorImpl.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(Tes
> >> tMethodRunner.java:81)
> >>    at
> >> org.junit.internal.runners.BeforeAndAfterRunner.runProtected(B
> >> eforeAndAfterRunner.java:34)
> >>    at
> >> org.junit.internal.runners.TestMethodRunner.runMethod(TestMeth
> >> odRunner.java:75)
> >>    at
> >> org.junit.internal.runners.TestMethodRunner.run(TestMethodRunn
> >> er.java:45)
> >>    at
> >> org.junit.internal.runners.TestClassMethodsRunner.invokeTestMe
> >> thod(TestClassMethodsRunner.java:66)
> >>    at
> >> org.junit.internal.runners.TestClassMethodsRunner.run(TestClas
> >> sMethodsRunner.java:35)
> >>    at
> >> org.junit.internal.runners.TestClassRunner$1.runUnprotected(Te
> >> stClassRunner.java:42)
> >>    at
> >> org.junit.internal.runners.BeforeAndAfterRunner.runProtected(B
> >> eforeAndAfterRunner.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(TestEx
> >> ecution.java:38)
> >>    at
> >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTest
> >> s(RemoteTestRunner.java:460)
> >>    at
> >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTest
> >> s(RemoteTestRunner.java:673)
> >>    at
> >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(Rem
> >> oteTestRunner.java:386)
> >>    at
> >> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(Re
> >> moteTestRunner.java:196)
> >> Caused by: java.lang.NullPointerException
> >>    at
> >> org.apache.cxf.binding.http.interceptor.DatabindingOutSetupInt
> >> erceptor.handleMessage(DatabindingOutSetupInterceptor.java:77)
> >>    at
> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIn
> >> terceptorChain.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-tf43146
> > 88.html#a12285030
> > Sent from the cxf-user mailing list archive at Nabble.com.
> > 
> > ----------------------------
> > IONA Technologies PLC (registered in Ireland)
> > Registered Number: 171387
> > Registered Address: The IONA Building, Shelbourne Road, 
> Dublin 4, Ireland
> > 
> > 
> 
> -- 
> View this message in context: 
> http://www.nabble.com/Restful-Service-client-exception-tf43146
88.html#a12295667
Sent from the cxf-user mailing list archive at Nabble.com.

----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland

Reply via email to