@EJB
с вводится после создания компонента.Это для менеджера инъекций EJB, а именно, невозможно вызвать метод установки bean-компонента перед его созданием:
overzichtAlle.setEjbFacade(ejbFacade);
OverzichtAlle overzichtAlle = new OverzichtAlle();
Вместо этого происходит следующее:
OverzichtAlle overzichtAlle = new OverzichtAlle();
overzichtAlle.setEjbFacade(ejbFacade);
Так что ejbFacade
is not доступно внутри конструктора bean-компонента.Обычный подход заключается в использовании для этого метода @PostConstruct
.
@PostConstruct
public void init() {
projE = ejbFacade.findAll();
omvormenProjectTypes();
}
Метод @PostConstruct
вызывается непосредственно после построения компонента и всех управляемых свойстви инъекции зависимости.Там вы можете выполнить свою EJB-зависимую инициализацию.После этого произойдет следующее:
OverzichtAlle overzichtAlle = new OverzichtAlle();
overzichtAlle.setEjbFacade(ejbFacade);
overzichtAlle.init();
Обратите внимание, что имя метода не имеет значения.Но init()
довольно самодокументируется.