Java CDI @Inject 抛出 NullPointerException

标签 java nullpointerexception cdi

我正在测试 official documentation 之后的 Java 7 CDI 功能但是当我尝试访问 greeting 对象时,我得到了一个 NullPointerException。该项目是一个 Jar Maven 项目。

这是Greeting

package greetings;

import javax.enterprise.inject.Default;
@Default
public class Greeting {
    public void  greet(String name) {
        System.out.println("Hello, " + name + ".");
    }
}

这是我注入(inject)bean的测试类

package greetings;

import static org.junit.Assert.assertTrue;
import javax.inject.Inject;
import org.junit.Test;

public class Tester {

    @Inject Greeting greeting;

    @Test
    public void greet()
    {
        greeting.greet("Mark");
        assertTrue(greeting!=null);
    }
}

我还在 src/main/resources/META-INF 文件夹中添加了 beans.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
   http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">

</beans>

当我运行测试时,我在 Tester 类的标记行处得到了一个 NullPointerException

你怎么看待这个问题?我浏览了很多文档,但似乎通过添加已经在类路径中的 beans.xml 解决了这个问题。

最佳答案

您可以在 jUnit 测试中使用 CDI。检查这个:http://jglue.org/cdi-unit/

关于Java CDI @Inject 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23999326/

相关文章:

java - 使用 Sax 解析访问 xml 中的节点

java - 使用java显示加密的pdf而无需输入密码

java - 过滤时列表中出现空指针异常 - Java

spring - 什么是 CDI 的 InjectionPoint 的 Spring DI 等价物?

java - Android Activity 中的霜玻璃背景效果

java - elasticsearch 6 中的模糊建议

java - NullPointerException 仅适用于某些设备上的动画

android - 使用按钮使用 fragment 更改布局

java - 如何使用 Vaadin CDI 和 Navigator 实现 MVP?

jsf-2 - 应用程序范围内的托管 bean 正在消亡?