从Jersey 1.x升级到2.x

时间:2015-09-28 14:02:02

标签: java maven jersey jax-rs pom.xml

请注意:此问题也存在类似问题,但没有任何内容可以解决这个问题

我目前有以下Gradle依赖项:

dependencies {
    compile "com.sun.jersey.contribs:jersey-apache-client4:1.18.1"
    compile "com.sun.jersey:jersey-client:1.18.1"
    compile "com.sun.jersey:jersey-core:1.18.1"
    compile "com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.3.2"
    compile "org.apache.httpcomponents:httpclient:4.3.2"
    compile "org.slf4j:jcl-over-slf4j:1.7.7"
}

我想将这些升级到Jersey的2.21版本,但是:

  • 似乎groupName现在是org.glassfish.jersey.core而不是com.sun.jersey;和
  • 看来Jersey-Client现在不需要明确声明Jersey-Core(Jersey-Core似乎不再作为JAR存在)
  • Jersey Apache 4客户端(jersey-apache-client4)似乎不存在于2.x land

所以我问,我的所有2.21依赖项应该是什么?这些天泽西/阿帕奇客户端藏在哪里?

1 个答案:

答案 0 :(得分:2)

对于泽西岛客户,您只需要

compile 'org.glassfish.jersey.core:jersey-client:2.21'

jersey-core不再存在,但可以认为它与jersey-common类似。但你不必担心这个。 jersey-client将其拉进去。

对于Apache,Jersey 2使用连接器提供程序。见Client Transport Connectors。你想要的是Apache连接器

compile 'org.glassfish.jersey.connectors:jersey-apache-connector:2.21'

然后只需配置Client

ClientConfig config = new ClientConfig();
config.connectorProvider(new ApacheConnectorProvider());
config.register(JacksonJsonProvider.class);
Client client = ClientBuilder.newClient(config);

您还应该摆脱当前的httpclient依赖关系。 jersey-apache-connector将其拉进去。

有关新客户端API的常规用法,请参阅Chapter 5. Client API

您的问题标题非常通用,但从依赖关系的外观来看,您只是尝试实现客户端。但对于其他想要实现服务器的人来说,他们可以查看