jax-rs/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 {@JsonbTransientprivate 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的更多免费内容,技巧和窍门:
成功! 现在检查您的电子邮件以确认您的订阅。
翻译自: https://www.javacodegeeks.com/2017/11/jersey-client-dependencies-jax-rs-2-1.html
jax-rs/jersey