Java CDI@injectnull指针

Java CDI@injectnull指针,java,glassfish,java-ee-6,cdi,Java,Glassfish,Java Ee 6,Cdi,我正在尝试使用CDI,但注入不起作用,未创建对象实例,并且我得到一个空指针: greetObj.问候(“冠军”) 我试图在EJB中注入一个bean: 我的EJB: 以及问候语对象和限定词 @Default public class Greeting { public String greet(String name) { return "Hello, " + name + "."; } } @Qualifier @Retention(RUNTIME) @Tar

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

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

以及问候语对象和限定词

@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上

多谢各位


Alexis

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

您的模块中有空的beans.xml吗?好吧,我错过了JEE6教程的第一行:>配置CDI应用程序使用CDI的应用程序必须有一个名为beans.xml的>文件。该文件可以完全为空(仅在某些有限的情况下,其内容>为空),但必须存在。对于web>应用程序,beans.xml文件必须位于web-INF目录中。对于>EJB模块或JAR文件,beans.xml文件必须位于META-INF>目录中。即使在使用限定符时也是如此。谢谢你,没问题,很高兴问题解决了。
@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 + ".";
    }
}