【问题标题】:Resolving version conflict due to external transitive dependency解决由于外部传递依赖导致的版本冲突
【发布时间】:2019-02-28 03:30:02
【问题描述】:

我遇到错误 -

servlet [jersey] in context with path [/GeneralService] threw exception
    java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri

添加新的外部依赖项后出现此错误,该依赖项在 pom.xml 文件中具有以下依赖项-

  1. jersey-client - 2.25.1 这又取决于 -
  2. javax.ws.rs-api - 2.0.1

当我从依赖层次结构中排除 javax.ws.rs-api - 2.0.1 时,我没有收到上述错误,但是这个外部依赖代码不起作用,因为它取决于这个工件。

我的主应用程序在 pom.xml 中有以下与球衣相关的依赖项

<dependency>
   <groupId>com.sun.jersey.contribs</groupId>
   <artifactId>jersey-multipart</artifactId>
   <version>1.18</version>
</dependency>
<dependency>
   <groupId>com.sun.jersey.contribs</groupId>
   <artifactId>jersey-spring</artifactId>
   <version>1.18</version>
   <exclusions>...</exclusions>
</dependency>
<dependency>
   <groupId>com.sun.jersey</groupId>
   <artifactId>jersey-bundle</artifactId>
   <version>1.18</version>
</dependency>

所以我的主要应用程序依赖于 jersey 版本 1.18,而外部依赖项依赖于 jersey 版本 2.0.1。 我无法找到解决此问题的方法,以便它顺利运行。任何帮助表示赞赏!

【问题讨论】:

  • 选择不同的库。这个将与您的应用程序不兼容。尝试混合 Jersey 主要版本是行不通的。无论你尝试如何工作,都会遇到这样的问题。

标签: java spring maven jersey jersey-2.0


【解决方案1】:

jersey 1.18 版使用java.ws.rs 1.1.1 版作为编译依赖。见:

https://mvnrepository.com/artifact/com.sun.jersey/jersey-bundle/1.18

既然您说的是使用 jersey 2.25.1,我建议将您的 pom 升级到 glassfish jersey 2.25:

https://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-client/2.25.1

像这样:

<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-client</artifactId>
    <version>2.25.1</version>
</dependency>

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-multipart</artifactId>
    <version>2.25.1</version>
</dependency>

那么对java.ws.rs 的依赖将是2.0.1。

至于jersey-spring神器,不依赖java.ws.rs

【讨论】:

  • 感谢您的回答。所以在这种情况下,我将不得不用 jersey-client 替换主应用程序中的所有 3 个 jersey 依赖项?
  • 查看我的编辑。我认为替换两个依赖项并保留球衣弹簧应该可以工作。
  • 再次感谢@JFPicard。让我试试这个。将分享结果。
【解决方案2】:

您需要使用一致的球衣版本,最好是 2.x。因此,将所有依赖项更新到 2.x,然后逐步确定需要在自己的代码中进行哪些更改才能使其正常工作。

没有明智的方法同时使用同一工件的不同版本。

【讨论】:

  • 感谢 JF Meier。让我试试升级版本到 2.x jersey。
猜你喜欢
  • 2012-07-05
  • 2016-02-26
  • 2017-09-10
  • 1970-01-01
  • 2021-09-03
  • 1970-01-01
  • 2015-08-26
  • 2014-08-15
  • 2013-06-04
相关资源
最近更新 更多