Я не понимаю, почему использование CDI для инъекций не работает с веб-гнездами, используя подносы.Undertow Websocket Bean Injection CDI Issue
Ниже приведен код, который у меня есть для простой конечной точки websocket.
@ServerEndpoint("/")
public class TestWebSocketEndpoint {
@Inject
private RetrieveAccessor retrieveAccessor;
private final Logger logger = Logger.getLogger(this.getClass().getName());
@OnOpen
public void onConnectionOpen(Session session) {
logger.info("Connection opened ... " + session.getId());
}
@OnMessage
public String onMessage(String message) {
if (!message.isEmpty()) {
return message;
}
System.out.println("RETRIEVE BEAN -> " + retrieveAccessor);
if (retrieveAccessor != null) {
return "BEAN NOT NULL";
}
return ":(";
}
@OnClose
public void onConnectionClose(Session session) {
logger.info("Connection close .... " + session.getId());
}
}
Конечно, проблема заключается в том, что введенное свойство равно null. У меня нет никаких проблем, конечно, используя остальную часть вещей для этого развертывания и инъекции компонента без состояния, описанного ниже. Есть ли работа для этого, каковы проблемы, с которыми я мог столкнуться, если бы я только начал объекты, которые мне нужны, это beans? Потому что это определенно работает.
RetrieveAccessor retrieveAccessor = новый .... {код}
Последняя часть вашего вопроса запутанная. Вы создаете экземпляр своего «RetrieveAccessor»? Вы также упоминаете о том, что вы используете. wildfly? –
Я просто использую подхват, и последняя часть моего вопроса просто объясняет, что нормальная инициализация класса этого компонента bean-объекта работает, каковы будут последствия этого. – thekevshow