新しいJEE6CDI仕様、特にjsf固有の(レジスタリソース用)および(インジェクション用)アノテーション@Named
に取って代わったと思われるアノテーションと組み合わせた@Injectの使用について質問があります。@ManagedBean
@ManagedProperty
Beanクラス" User
"に注釈が付けられ@ManagedBean @SessionScoped
ており、このクラスのオブジェクトが任意のBeanに注入され@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:org.jboss.weld.context.conversation.ConversationIdGenerator@b374765 attribute_name:org.jboss.weld.context.ConversationContext.conversations attribute_value:{}
どこが間違っているの?!