CDI @inject空指针

时间:2012-01-13 15:42:19

标签: java glassfish java-ee-6 cdi

我正在尝试使用CDI,但注入不起作用,对象实例未创建,我得到一个空指针: greetObj.greet( “冠军”);

我正在尝试在EJB中注入一个bean: 我的EJB:

    public @Stateless class CDIEjbBean implements CDIEjb {

    @Inject Greeting greetObj;
    public String getGreeting() {
        return greetObj.greet("Champion");
    }
}

以及问候对象和限定符

@Default
public class Greeting {

    public String greet(String name) {
        return "Hello, " + name + ".";
    }
}

@Qualifier
@Retention(RUNTIME)
@Target({TYPE, METHOD, FIELD, PARAMETER})
public @interface Informal {}

@Informal
public class InformalGreeting extends Greeting{
    public String greet(String name) {
        return "Hi, " + name + ".";
    }
}

任何想法?我在JDK6_21 glassfish 3.1

谢谢

亚历

1 个答案:

答案 0 :(得分:2)

我错过了JEE6教程的第一行:>配置CDI应用程序使用CDI的应用程序必须具有名为beans.xml的文件。