サーブレット コンテキスト リスナーのcontextInitialized()
メソッドから EJB サービスを呼び出す必要があります。アプリケーションは JBOSS で実行されていますが、コンテキスト リスナーは正常に動作しますが、JNDI ルックアップを介して EJB Bean にアクセスできません。
JBOSS での Web デプロイメントは、EJB Bean が JNDI ツリーにバインドされる前に行われるためです。これからどうやって乗り越える?JNDI バインドを早期に構成する方法や、EJB が完全にデプロイされた後で Web デプロイメントを開始する方法はありますか?
Thread.sleep()
メソッドのサービス呼び出しの前に配置contextInitialized()
しましたが、JBoss5.1.0 GA では正常に動作していますが、同じバージョンの他のマシン JBoss では同じことが動作しませんでした。
アプリケーションがこれを必要とするのは、DB からいくつかのマスター データをロードし、それを Web レイヤーで利用できるようにする (一種のキャッシュ) ためです。JBOSS startupmbean はこの要件に適合しますか? はいの場合、データを Web レイヤーで使用できるようにするにはどうすればよいですか?
また、代替手段があれば提案してください。