我正在尝试运行一个扩展JerseyTest
的测试但是在运行时我得到了一个:
java.lang.NoClassDefFoundError: jersey/repackaged/com/google/common/collect/Maps
知道我缺少什么依赖吗?我在pom.xml
和jersey中包含了以下球衣文物。版本是2.5.1:
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>com.sun.jersey.jersey-test-framework</groupId>
<artifactId>jersey-test-framework-core</artifactId>
<version>1.18</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.test-framework.providers</groupId>
<artifactId>jersey-test-framework-provider-grizzly2</artifactId>
<version>2.6</version>
<scope>test</scope>
</dependency>
答案 0 :(得分:23)
你需要:
<dependency>
<groupId>org.glassfish.jersey.bundles.repackaged</groupId>
<artifactId>jersey-guava</artifactId>
<version>2.6</version>
</dependency>
来自http://blog.dejavu.sk/2014/02/21/jersey-2-6-has-been-released-new-and-noteworthy/
泽西岛,从JAX-RS 2.0版本2.6和JAX-RS 1.1版本1.18.1开始,不再向您的应用程序传递Guava和ASM库。这意味着即使我们仍然在内部使用它们,您也可以使用这些库的不同版本。这两个库中的类已分别重新打包,
jersey.repackaged.com.google.common
和jersey.repackaged.objectweb.asm
,并缩小以减少占用空间。 ASM 5现在是jersey-server核心模块的一部分,对于Guava,我们创建了一个单独的bundle模块jersey-guava,因为这个依赖项被广泛用于多个Jersey模块。
您正在使用泽西 2.6 jersey-test-framework-provider-grizzly2
。