私はDAOと対話する必要がある(複合)コンポーネントを作成しています。ここではJavaの部分が宣言されている方法です:リソースをUIComponentに注入する(別名CDIはここで動作しますか?)
:私は顔アノテーションを試してみました@Inject private LocationControl lc;
そして、それは動作しませんでした:
@FacesComponent(value="selectLocation")
public class SelectLocation extends UINamingContainer {
は、DAOオブジェクトを取得するには、私はCDIアノテーションを試してみました
@ManagedProperty (value = "@{locationControl}") private LocationControl lc;
どちらの場合も何も起こりません。lcプロパティは、コンストラクタの終了後にnullになります。
私はすべての私の裏豆にCDIを使用し、それはすべて動作します。これは、GlassFish 3.1.1の内部でWeldを使用することになります。どのようにリソースを取得するための任意の提案?
ダン - 私はjava.inject.Namedまだありません喜びを試してみました。 – AlanObject
@RequestScopedを追加すると、アプリケーションをデプロイできなくなります。WELD-001437通常のスコープ付きbeanクラスjavax.faces.component.UIComponentは、型がfinalであるか、最終メソッドを含んでいるためプロキシーできません。public final javax.faces.component。 TransientStateHelper javax.faces.component.UIComponent.getTransientStateHelper()。 – AlanObject
作成されたコンポーネントを使用すると、ユーザーは、そのようなオブジェクトのデータベース(JPA)を参照することによってLocationオブジェクトを選択できます。そのためには、私はDAOに直接的または間接的にアクセスする必要があります。しかし、私のDAOは他のCDIマネージドBeanと違いはありません。JPAアノテーションは@PersistenceContextのようなものです。 beans.xmlに何かがあるかどうかを調べるためにCDI仕様を読んでいます。 – AlanObject