JSFアプリケーションでDIとインターセプタを使用しているときに問題が発生しています。インターセプタが存在するとEJBインジェクションが失敗する
私はJSFイベントを監視し、初期データ検索を実行するバッキングBeanを持っています。次のようにJSFページでBeanはイベントリスナーとして登録されています
<f:event type="preRenderView" listener="#{myBean.loadData}"/>
Beanがかなり前方であり、このように基本的になります。
@Named
@RequestScoped
public class MyBean {
@EJB
private SomeDao dao;
public void loadData() { ... }
public void performSomeStuff() { ... }
}
DAOが適切に注入し、すべてがここまで細かいです。今は、インターセプタ内で実行されるいくつかの遅延ロードを実行したいと思います(特定のコードは、インターセプタが呼び出しコンテキストで処理を進めるときに同じ動作が現れるため重要ではありません)。だから、performSomeStuff()を呼び出す前に、私はすべてのデータがロードされていることを確認したいと思います。この時点で
@Interceptors(MyInterceptor.class)
public void performSomeStuff() { ... }
をEJBはもはや注入されません(NPEは...現れる) - 上の任意のアイデアこの?
セッティング:
- のGlassFish 3.0.1
- WELD-000900 1.0.1(SP3)
- クロサギ科2.0.2(FCSのB10)事前に
ありがとう!
よろしく、 アレックス
あなたは別のコンポーネント(非ejb)を注入しようとしましたか?それは動作しますか? – Bozho
はいくつかの他のコンポーネントともう1つのejbを試しました。これまでの結果:@Injectアノテーションされたものはすべて注入され、@EJBアノテートされたものはすべて... – alexhanschke
はバグかもしれません。報告してください:) – Bozho