Jersey 是 JAX-RS 2.1 的参考实现。为了在企业容器之外运行具有 JSON-P 和 JSON-B 映射的 JAX-RS 2.1 客户端,需要以下 Jersey 依赖项。
Jersey 客户端 2.6 版实现了 JAX-RS 2.1 API。以下依赖项将客户端运行时添加到项目中:
<dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-client</artifactId> <version>2.26</version> </dependency> <dependency> <groupId>org.glassfish.jersey.inject</groupId> <artifactId>jersey-hk2</artifactId> <version>2.26</version> </dependency>
如果应该使用 JSON-P 映射 JSON 对象,则还需要以下依赖项:
<dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-processing</artifactId> <version>2.26</version> </dependency>
这已经为 JSON-P 1.1 添加了一个实现,即 Glassfish javax.json
。
如果应该使用 JSON-B 映射 JSON 对象,则添加以下依赖项来代替或附加到前一个依赖项:
<dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-binding</artifactId> <version>2.26</version> </dependency>
这会传递地添加 Yasson 依赖项,即 JSON-B 的参考实现。
这些依赖项使项目能够使用 JAX-RS 2.1 客户端以及 JSON-P 或 JSON-B 绑定:
Client client = ClientBuilder.newClient(); WebTarget target = client .target("http://localhost:8080/jersey-test/resources/tests"); Response response = target.request(MediaType.APPLICATION_JSON_TYPE).get(); JsonArray customers = response.readEntity(JsonArray.class); response = target.path("123").request(MediaType.APPLICATION_JSON_TYPE).get(); Customer customer = response.readEntity(Customer.class); ... public class Customer { @JsonbTransient private long id; private String name; // getters & setters }
对于我们的 Gradle 用户,这里是 Maven 声明的等价物:
compile 'org.glassfish.jersey.core:jersey-client:2.26' compile 'org.glassfish.jersey.inject:jersey-hk2:2.26' compile 'org.glassfish.jersey.media:jersey-media-json-processing:2.26' compile 'org.glassfish.jersey.media:jersey-media-json-binding:2.26'
觉得帖子有用?订阅我的时事通讯以获取更多有关 IT 和 Java 的免费内容、提示和技巧:
成功!现在检查您的电子邮件以确认您的订阅。
标签2: Java教程地址:https://www.cundage.com/article/jcg-jersey-client-dependencies-jax-rs-2-1.html