2010-12-07 13 views
1

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)事前に

ありがとう!

よろしく、 アレックス

+0

あなたは別のコンポーネント(非ejb)を注入しようとしましたか?それは動作しますか? – Bozho

+0

はいくつかの他のコンポーネントともう1つのejbを試しました。これまでの結果:@Injectアノテーションされたものはすべて注入され、@EJBアノテートされたものはすべて... – alexhanschke

+0

はバグかもしれません。報告してください:) – Bozho

答えて

0

あなたが進捗状況を作りたい場合は、EJBスタイルとは対照的に、結合インターセプタで結ば299ベースのインターセプタを使用してみてください。このエリアにバグがある場合は、インターセプタを少し後に実行すると、いくらか救済できます。

関連する問題