You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by gido <gi...@uninova.pt> on 2015/02/07 01:21:31 UTC
Restful WS problem when creating a client
Dear All,
I am trying to develop restful webservices. I have followed the tutorial:
http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/jax_rs/basic/src/main/java/demo/jaxrs/server/Server.java?revision=1490431&view=markup
Everything seems good, the Server is running. However, whenever I try to
create a client with the following code:
JAXRSClientFactoryBean client = new JAXRSClientFactoryBean();
client.setAddress("http://localhost:9000/repositoryservice/datafromenvironment");
client.setResourceClass(RepositoryService.class);
RepositoryService repos = client.create(RepositoryService.class);
I have the following error:
Exception in thread "main" java.lang.NoSuchMethodError:
org.apache.cxf.common.util.ClassHelper.getRealClass(Lorg/apache/cxf/Bus;Ljava/lang/Object;)Ljava/lang/Class;
at
org.apache.cxf.jaxrs.client.ClientProviderFactory.setProviders(ClientProviderFactory.java:91)
at
org.apache.cxf.jaxrs.provider.ProviderFactory.initBaseFactory(ProviderFactory.java:138)
at
org.apache.cxf.jaxrs.client.ClientProviderFactory.initBaseFactory(ClientProviderFactory.java:81)
at
org.apache.cxf.jaxrs.client.ClientProviderFactory.createInstance(ClientProviderFactory.java:56)
at
org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.initClient(JAXRSClientFactoryBean.java:377)
at
org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.createWithValues(JAXRSClientFactoryBean.java:321)
at
org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.create(JAXRSClientFactoryBean.java:264)
at pt.uninova.restfulservicetest.testeRestful.main(testeRestful.java:36)
My classes are:
@Path("/repositoryservice/")
public interface RepositoryService {
@POST
@Path("/datafromenvironment/")
Response addDataFromEnvironment(Data data);
@GET
@Path("/Hello/{name}")
String sayHello(@PathParam("name") String name);
}
and
public class RepositoryServiceImpl implements RepositoryService{
private RepositoryImpl repos;
public RepositoryServiceImpl() {
initializeService();
}
@Override
public Response addDataFromEnvironment(Data data) {
repos.openConnection();
repos.Insert(data);
repos.closeConnection();
return Response.ok(data).build();
}
@Override
public String sayHello(String name) {
return "hello " + name;
}
private void initializeService(){
this.repos = new RepositoryImpl();
}
}
Do you have any suggestion?
Thank you for the help.
BR,
Giovanni
--
View this message in context: http://cxf.547215.n5.nabble.com/Restful-WS-problem-when-creating-a-client-tp5754027.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: Restful WS problem when creating a client
Posted by Puneet Gupta <da...@gmail.com>.
RepositoryService is a interface, and an object of interface can't be made.
Try setting resource class as RepositoryServiceImpl.
On 8 Feb 2015 15:54, "gido" <gi...@uninova.pt> wrote:
> Dear All,
>
> I am trying to develop restful webservices. I have followed the tutorial:
>
>
> http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/jax_rs/basic/src/main/java/demo/jaxrs/server/Server.java?revision=1490431&view=markup
>
> Everything seems good, the Server is running. However, whenever I try to
> create a client with the following code:
>
> JAXRSClientFactoryBean client = new JAXRSClientFactoryBean();
>
> client.setAddress("
> http://localhost:9000/repositoryservice/datafromenvironment");
> client.setResourceClass(RepositoryService.class);
> RepositoryService repos = client.create(RepositoryService.class);
>
> I have the following error:
>
> Exception in thread "main" java.lang.NoSuchMethodError:
>
> org.apache.cxf.common.util.ClassHelper.getRealClass(Lorg/apache/cxf/Bus;Ljava/lang/Object;)Ljava/lang/Class;
> at
>
> org.apache.cxf.jaxrs.client.ClientProviderFactory.setProviders(ClientProviderFactory.java:91)
> at
>
> org.apache.cxf.jaxrs.provider.ProviderFactory.initBaseFactory(ProviderFactory.java:138)
> at
>
> org.apache.cxf.jaxrs.client.ClientProviderFactory.initBaseFactory(ClientProviderFactory.java:81)
> at
>
> org.apache.cxf.jaxrs.client.ClientProviderFactory.createInstance(ClientProviderFactory.java:56)
> at
>
> org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.initClient(JAXRSClientFactoryBean.java:377)
> at
>
> org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.createWithValues(JAXRSClientFactoryBean.java:321)
> at
>
> org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.create(JAXRSClientFactoryBean.java:264)
> at
> pt.uninova.restfulservicetest.testeRestful.main(testeRestful.java:36)
>
> My classes are:
>
> @Path("/repositoryservice/")
> public interface RepositoryService {
>
> @POST
> @Path("/datafromenvironment/")
> Response addDataFromEnvironment(Data data);
>
> @GET
> @Path("/Hello/{name}")
> String sayHello(@PathParam("name") String name);
>
> }
>
> and
>
> public class RepositoryServiceImpl implements RepositoryService{
>
> private RepositoryImpl repos;
>
> public RepositoryServiceImpl() {
> initializeService();
> }
>
> @Override
> public Response addDataFromEnvironment(Data data) {
> repos.openConnection();
> repos.Insert(data);
> repos.closeConnection();
> return Response.ok(data).build();
> }
>
> @Override
> public String sayHello(String name) {
> return "hello " + name;
> }
>
> private void initializeService(){
> this.repos = new RepositoryImpl();
> }
>
> }
>
> Do you have any suggestion?
>
> Thank you for the help.
>
> BR,
>
> Giovanni
>
>
>
> --
> View this message in context:
> http://cxf.547215.n5.nabble.com/Restful-WS-problem-when-creating-a-client-tp5754027.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
Re: Restful WS problem when creating a client
Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi
You might have different CXF distributions on the classpath ?
Cheers, Sergey
On 07/02/15 00:21, gido wrote:
> Dear All,
>
> I am trying to develop restful webservices. I have followed the tutorial:
>
> http://svn.apache.org/viewvc/cxf/trunk/distribution/src/main/release/samples/jax_rs/basic/src/main/java/demo/jaxrs/server/Server.java?revision=1490431&view=markup
>
> Everything seems good, the Server is running. However, whenever I try to
> create a client with the following code:
>
> JAXRSClientFactoryBean client = new JAXRSClientFactoryBean();
>
> client.setAddress("http://localhost:9000/repositoryservice/datafromenvironment");
> client.setResourceClass(RepositoryService.class);
> RepositoryService repos = client.create(RepositoryService.class);
>
> I have the following error:
>
> Exception in thread "main" java.lang.NoSuchMethodError:
> org.apache.cxf.common.util.ClassHelper.getRealClass(Lorg/apache/cxf/Bus;Ljava/lang/Object;)Ljava/lang/Class;
> at
> org.apache.cxf.jaxrs.client.ClientProviderFactory.setProviders(ClientProviderFactory.java:91)
> at
> org.apache.cxf.jaxrs.provider.ProviderFactory.initBaseFactory(ProviderFactory.java:138)
> at
> org.apache.cxf.jaxrs.client.ClientProviderFactory.initBaseFactory(ClientProviderFactory.java:81)
> at
> org.apache.cxf.jaxrs.client.ClientProviderFactory.createInstance(ClientProviderFactory.java:56)
> at
> org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.initClient(JAXRSClientFactoryBean.java:377)
> at
> org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.createWithValues(JAXRSClientFactoryBean.java:321)
> at
> org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean.create(JAXRSClientFactoryBean.java:264)
> at pt.uninova.restfulservicetest.testeRestful.main(testeRestful.java:36)
>
> My classes are:
>
> @Path("/repositoryservice/")
> public interface RepositoryService {
>
> @POST
> @Path("/datafromenvironment/")
> Response addDataFromEnvironment(Data data);
>
> @GET
> @Path("/Hello/{name}")
> String sayHello(@PathParam("name") String name);
>
> }
>
> and
>
> public class RepositoryServiceImpl implements RepositoryService{
>
> private RepositoryImpl repos;
>
> public RepositoryServiceImpl() {
> initializeService();
> }
>
> @Override
> public Response addDataFromEnvironment(Data data) {
> repos.openConnection();
> repos.Insert(data);
> repos.closeConnection();
> return Response.ok(data).build();
> }
>
> @Override
> public String sayHello(String name) {
> return "hello " + name;
> }
>
> private void initializeService(){
> this.repos = new RepositoryImpl();
> }
>
> }
>
> Do you have any suggestion?
>
> Thank you for the help.
>
> BR,
>
> Giovanni
>
>
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/Restful-WS-problem-when-creating-a-client-tp5754027.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>