我遇到错误-
servlet [jersey] in context with path [/GeneralService] threw exception
java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri
在添加新的外部依赖项(在其pom.xml文件中具有以下依赖项)后,我得到此错误-
当我从依赖关系层次结构中排除javax.ws.rs-api-2.0.1时,我没有得到上述错误,但是依赖于此工件,此外部依赖关系代码不起作用。
我的主应用程序在pom.xml中具有与jersey相关的依赖项
<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。 我无法找到解决此问题的方法,以使其顺利运行。任何帮助表示赞赏!
答案 0 :(得分:0)
您需要使用一致的jersey版本,最好是2.x。因此,将您所有的依赖关系更新为2.x,然后逐步找出需要在自己的代码中进行哪些更改才能使之起作用。
没有明智的方法同时使用同一工件的不同版本。
答案 1 :(得分:0)
球衣版本1.18使用java.ws.rs
版本1.1.1作为编译依赖项。参见:
https://mvnrepository.com/artifact/com.sun.jersey/jersey-bundle/1.18
由于您正在谈论使用球衣2.25.1,因此建议您将pom升级为glassfish球衣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