У меня есть Bean, который создает экземпляр объекта, который мне нужно внедрить в другие bean-компоненты. Все работает нормально, я могу распечатать свойство введенного объекта в методе @PostConstruct, но если я попытаюсь вызвать метод из этого введенного объекта внутри метода @OnOpen ServerEndpoint, это даст мне исключение NullPointerException.
Вот моя конечная точка сервера
@Named
@ApplicationScoped
@ServerEndpoint(value = "/websocket")
public class BeanThree {
private String message = "test";
@Inject private User user;
@PostConstruct
public void init() { System.out.println(user.getUserName()); } <-- displayed in the console correctly
public String getMessage() { return this.message; }
@OnOpen
public void onOpen(Session session) {
System.out.println("onOpen");
System.out.println(user.getUserName()); <-- causes NullPointerException
}
}
Можно ли это исправить?
Edit1: я использую cdi 1.2, причал 9.1, jsf 2.2, java-ee7 и веб-сокеты от java-ee7