В моем проекте у меня есть bean-компонент @Stateful UserSessionData, который хранит только пользовательские данные. После входа пользователя в систему он вызывается с помощью поиска JNDI, заполняется и сохраняется в атрибуте HttpSession. Мой вопрос: не должен ли я вместо этого создать CDI-компонент @SessionScoped UserSessionData, внедрить и заполнить его в моем компоненте входа в систему? Затем я могу внедрить его в резервные компоненты, которым нужны данные, вместо использования HttpSession.getAttribute. Какой метод предпочтительнее?
@Stateful
EJB против@SessionScoped
управляемого компонента. Они абсолютно не взаимозаменяемы. Похоже, вы совсем не понимаете смысла наличия EJB. Дубликат должен заставить вас понять, что ваш текущий вопрос не имеет никакого смысла. Кстати, правильный подход заключается в том, чтобы просто внедрить этот EJB в обычный компонент с областью действия сеанса вместо того, чтобы вручную возиться с сеансом JNDI и HTTP. - person BalusC   schedule 11.05.2016