2
Я пытаюсь использовать CDI, но инъекция не работает, экземпляр объекта не создан, и я получаю нулевой указатель на это: greetObj.greet («Champion»);CDI @inject null pointer
Я пытаюсь Подайте фасоль в качестве EJB: моего 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
Спасибо
Алексис
У вас есть пустой beans.xml в вашем модуле? – Perception
хорошо, я пропустил первую строку в учебнике JEE6: > Настройка приложения CDI Приложение, использующее CDI, должно иметь файл > beans.xml. Файл может быть полностью пустым (он имеет контент > только в определенных ограниченных ситуациях), но он должен присутствовать. Для веб-приложения > файл beans.xml должен находиться в каталоге WEB-INF. Для > EJB-модулей или JAR-файлов файл beans.xml должен находиться в каталоге META-INF >. Даже при использовании квалификаторов. Спасибо вам все равно – bodtx
Нет проблем, рад, что исправлены проблемы. – Perception