2011-12-05 14 views
2

私はJetty内でHibernateとJSF 2を実行しているCDI/Weldアプリケーションを持っています。CDI/Weld:@PostConstructの遅い初期化/呼び出しを無効にする

Jettyサーバーの起動後に初期化を行う必要があります。私は@ApplicationScoped beanの@PostConstructメソッドでそれを行いますが、要求がアプリケーションに送られるまで呼び出されません。私はそれを待つことはできません。

Weldを通じてアプリケーションのライフサイクルに突入する方法があるかどうかを確認しようとしましたが、何も見つかりませんでした。

誰でも助けてくれますか?

答えて

0

この質問に遭遇する可能性のある人は誰でも気をつけてください。私はそれを働かせることができず、状況に対処するために自分のシングルトンを書くことになった。

2

サーブレット・コンテキスト・リスナーはどうですか?あなたが何かに到達する必要がある場合、注入はそれらでうまくいくはずです。また、どのような初期化を行う必要があるかによって異なります。リクエストや会話スコープのBeanなどに到達できないことがあります。

+0

huum、私はコンテキストリスナー上で動作することを認識していません。私はそれを撃つだろう。ありがとう。 – Arash

+0

それはうまくいきませんでした。サーブレット・コンテキスト・リスナーへの注入は、突堤の下でWeldには成功しませんでした。 – Arash

3

Java EE 7/CDI 1.1/Weld 2.0では、@Initialized(ApplicationScoped.class)ServletContextイベントを監視できます。これにより、Beanのインスタンスが熱心に作成されます。

関連する問題