Я пытаюсь реализовать одноэлементный класс, который управляет свойствами из моей базы данных. Тем не менее, я получаю исключение nullPointerException, когда я пытаюсь ввести свой бэнд базы данных. Вот мой код:NullPointerException при инъекции EJB в JBoss
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.ejb.Stateless;
..
@Stateless
public class Properties {
public static volatile Properties instance;
private static Map<String, String> properties = new HashMap<String, String>();
@EJB(WHAT_TO_DO_HERE)
private DatabasePersisterLocal databasePersister;
public static Properties getInstance() {
if (instance == null) {
synchronized (Properties.class) {
if (instance == null) {
instance = new Properties();
}
}
}
return instance;
}
private Properties() {
System.out.println("starting");
System.out.println(databasePersister); //null
//initializing
}
}
Я экспортирует свой проект в банке, а потом, когда я пытаюсь получить экземпляр Properties
, я получаю, что starting
распечатаны, а затем в nullPointerException
. Когда я пытаюсь ввести тот же EJB (DatabasePersisterLocal) из моего другого проекта, я не получаю ошибки. Что я делаю не так?
вам нужно указать EJB, который вы хотите ввести в 'WHAT_TO_DO_HERE', назвать целевой компонент с именем и указать его здесь. –
Но я успешно ввел «DatabasePersisterLocal» в свой проект, используя только аннотацию '@ EJB'? –
это тоже иждивенцы к реализации слишком чувак, иногда в некоторых средах вам нужно называть их :) –