Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Jersey 1.x升级到2.x_Java_Maven_Jersey_Jax Rs_Pom.xml - Fatal编程技术网

Java 从Jersey 1.x升级到2.x

Java 从Jersey 1.x升级到2.x,java,maven,jersey,jax-rs,pom.xml,Java,Maven,Jersey,Jax Rs,Pom.xml,请注意:也有类似的问题,但没有什么能让这成为一个完全的骗局 我目前有以下渐变依赖项: 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

请注意:也有类似的问题,但没有什么能让这成为一个完全的骗局


我目前有以下渐变依赖项:

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
版本,但是:

  • 似乎现在的组名是
    org.glassfish.jersey.core
    ,而不是
    com.sun.jersey
    ;及
  • Jersey客户端现在似乎不再需要显式声明Jersey核心(Jersey核心似乎不再作为JAR存在)
  • Jersey Apache 4客户端(
    Jersey-Apache-client4
    )似乎不存在于2.x版中

所以我问,我的
2.21
依赖项应该是什么?Jersey/Apache客户端最近藏在哪里了?

对于Jersey客户端,您只需要

compile 'org.glassfish.jersey.core:jersey-client:2.21'
jersey core
不再存在,尽管它可以被视为类似于
jersey common
。但你不必为此担心<代码>泽西客户端将其拉入

至于Apache,Jersey 2使用连接器提供程序。看见您需要的是Apache连接器

compile 'org.glassfish.jersey.connectors:jersey-apache-connector:2.21'
然后只需配置
客户端

ClientConfig config = new ClientConfig();
config.connectorProvider(new ApacheConnectorProvider());
config.register(JacksonJsonProvider.class);
Client client = ClientBuilder.newClient(config);
您还应该摆脱当前的
httpclient
依赖关系<代码>jersey apache连接器将其拉入

有关新客户端API的一般用法,请参阅


您的问题标题相当笼统,尽管从依赖项的外观来看,您只是在尝试实现客户机。但是对于任何其他想要实现服务器的人,他们都可以签出


谢谢(一如既往)@peeskillet(+1)-但是
jersey apache连接器仍然给我带来麻烦。但是,当我将它添加到我的
build.gradle
并运行
/gradlew eclipse
时,它似乎没有下载jar。如果我进入Eclipse并刷新我的项目,我会得到一个“缺少必需的库”错误。果然,当我进入
~/.gradle/caches/module-2/files-2.1
时,我看到了一堆Jersey工件,但没有
Jersey apache连接器
。这个jar/pom可能坏了吗?我的编译声明和你发布的完全一样…想法?再次感谢!我没有用Gradle测试它,但是它在Maven上运行得很好,而且因为它在Maven central,所以它应该在Gradle上运行得很好。不知道问题出在哪里。你有没有试着用Maven将它添加到本地Maven中,并在Gradle构建中将
mavenLocal()
添加到
repositories
。你是对的-我没有在我的
存储库中定义
mavenLocal
mavenCentral
,这让人感到困惑,因为我的开发已经进行了一半,到目前为止还没有遇到任何问题。是的,我现在正在拔下jersey apache连接器(谢谢!)。然而,我认为我还没有脱离困境……看起来不再有
get/post/put/delete
方法,而且似乎不再有
client.destroy()
方法。我找不到任何关于正确使用
WebTarget
的文档,也找不到任何关于如何礼貌地关闭客户端的文档……有什么想法吗?