Jersey 2.x不包含WebResource和资源类。我可以用什么呢?

时间:2015-06-15 19:41:21

标签: java rest jersey jersey-2.0

我正在尝试使用Jersey创建一个Web API。我正在尝试运行类似于此的方法:

WebResource r = c.resource("http://localhost:8080/Jersey/rest/contacts");

但是Jersey 2.x没有WebResourceResource类。那么我可以使用哪个类来将uri http://localhost:8080/Jersey/rest/contacts作为参数? 这将在ContactClient

中运行

2 个答案:

答案 0 :(得分:9)

查看Jersey文档中的Client API。使用Jersey 2.x,您需要使用WebTarget。例如

Client client = ClientBuilder.newClient();
WebTarget target = client.target(url);
Response response = target.request().get();

请参阅我链接的文档以获取更多信息和示例。

答案 1 :(得分:0)

JAX-RS 2.0客户端API : JAX-RS 2.0引入了 新客户端API ,因此您可以向远程发出 http请求 RESTful Web服务。

这是一个“流畅”的请求构建API,具有真正的 3个主要类:

  1. 客户
  2. WebTarget和
  3. 响应。

1。提出一个简单的客户请求

Jersey 1.x方式:

Client client = Client.create();
  WebResource webResource = client.resource(restURL).path("myresource/{param}");
  String result = webResource.pathParam("param", "value").get(String.class);

JAX-RS 2.0方式:

Client client = ClientFactory.newClient();
 WebTarget target = client.target(restURL).path("myresource/{param}");
 String result = target.pathParam("param", "value").get(String.class);

2。将实体附加到请求

Jersey 1.x方式:

Client client = Client.create();
 WebResource webResource = client.resource(restURL);
 ClientResponse response = webResource.post(ClientResponse.class, "payload");

JAX-RS 2.0方式:

Client client = ClientFactory.newClient();
 WebTarget target = client.target(restURL);
 Response response = target.request().post(Entity.text("payload"), Response.class);