java - 未找到类定义 : org/glassfish/hk2/ComponentException

标签 java maven testing jersey hk2

我需要为 Jersey 应用程序编写 junit 测试。现在我想测试依赖注入(inject),问题是我创建了这样的类:

@RunWith(Hk2Runner.class)
public class BinderTest {
    @Inject
    private SomeClass someClass;

    @Test
    public void passingTest() {
        someClass.getSomething("asd", "asd", "asd");
        Assert.assertTrue(true);
    }
}

运行时,输出为:

java.lang.NoClassDefFoundError: org/glassfish/hk2/ComponentException
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)

我试图找到将该类添加到 pom.xml 文件的依赖项,但什么也没找到。 你们知道哪个 Maven 依赖项包含提到的 ComponentException 类吗?

添加依赖项以获得 HK2Runner 类:

<dependency>
    <groupId>org.glassfish.hk2</groupId>
    <artifactId>auto-depends</artifactId>
    <version>2.0.5</version>
</dependency>

最佳答案

由于您使用的是旧的 auto-depends 依赖项,因此您还应该添加 hk2-deprecated依赖:

<dependency>
    <groupId>org.glassfish.hk2</groupId>
    <artifactId>hk2-deprecated</artifactId>
    <version>2.0.5</version>
    <scope>test</scope>
</dependency>

另一个解决方案是将 auto-depends 依赖项替换为新的 hk2-testing并从 org.jvnet.hk2.testing.junit.HK2Runner 类扩展。

<dependency>
    <groupId>org.glassfish.hk2</groupId>
    <artifactId>hk2-testing</artifactId>
    <version>2.3.0</version>
    <scope>test</scope>
</dependency>
public class BinderTest extends HK2Runner { }

关于java - 未找到类定义 : org/glassfish/hk2/ComponentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34021450/

相关文章:

java - 计算总和为偶数的数组中数字的最大数量

java - Streams - 过滤所有不抛出异常的内容

java - 如何在java日志记录属性文件中配置我自己的格式化程序

java - Maven 与 npm 类似吗?

testing - 将黑猩猩与 Meteor 一起使用时固定装置的正确方法是什么

testing - 在线测试我的网站

java - 为什么我不需要在 Mac OS X 中设置 CLASSPATH 和 JAVA_HOME?

maven - 如何自动构建此 Winrar Sfx 文件

java - Maven 依赖项在 WEB-INF/lib 中不可见

testing - Jest + puppeteer 最佳架构实践