Java CDI@injectnull指针
我正在尝试使用CDI,但注入不起作用,未创建对象实例,并且我得到一个空指针: greetObj.问候(“冠军”) 我试图在EJB中注入一个bean: 我的EJB: 以及问候语对象和限定词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
@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 + ".";
}
}