У меня возник вопрос о новой спецификации CDI JEE6, в частности, использование @Inject в сочетании с аннотациями @Named
, которые, похоже, заменили специфический jsf @ManagedBean
(для ресурса реестра) и @ManagedProperty
(для инъекций) аннотации.получить управляемый компонент @Named из области сеанса
Предполагая, что у вас есть класс боба «User
» аннотированный @ManagedBean @SessionScoped
и объект этого класса вводится в любом компоненте, используя @ManagedProperty
тогда, когда создается этот объект и впрыскивается он также положить в сессии, и я мог бы получить доступ к сессии (для например, в фильтре) и получить объект с помощью:
User user = (User)((HttpServletRequest) request).getSession().getAttribute("user");
Так что, если я пытаюсь ту же логику (в GlassFish 3.1.2) с использованием @Named @SessionScoped
, а затем @Inject
я могу подтвердить, что нет такого объекта типа User
в сессии, но это то, что я нахожу в сессии:
attribute_name: org.jboss.weld.context.conversation.ConversationIdGenerator attribute_value: [email protected]765 attribute_name: org.jboss.weld.context.ConversationContext.conversations attribute_value: {}
где я делаю неправильно ?!