私たちは、サーバーサイドがEARアプリケーションであり、いくつかのSession BeansがAPIを公開しているクライアント/サーバーアプリケーションを構築しようと考えています。 EJBモジュール内のWebモジュール用のServletContextListenerのようなものがあるかどうかを知りたいので、サーバー側のアプリケーションがいつ開始されるかを知ることができます。EJBアプリケーションの起動時にイベントが発生していませんか?
ありがとうございます。
私たちは、サーバーサイドがEARアプリケーションであり、いくつかのSession BeansがAPIを公開しているクライアント/サーバーアプリケーションを構築しようと考えています。 EJBモジュール内のWebモジュール用のServletContextListenerのようなものがあるかどうかを知りたいので、サーバー側のアプリケーションがいつ開始されるかを知ることができます。EJBアプリケーションの起動時にイベントが発生していませんか?
ありがとうございます。
JEE5では、他には何もありません。 ServletContextListenerは、ポータブルなベストソリューションです。
JEE6では、シングルトンEJBを使用できます。 @Startupを使用してシングルトンEJBに注釈を付けることができ、アプリケーションの起動時にEJBが作成されます。したがって、WARコンポーネントを持たない「純粋なEJB」アプリケーションの場合、これがそのような仕組みになります。
私は意識していません。 this related questionを参照してください。
EARがあるので、ServletContextListener
を使用できます。
ハルトゥンは基本的に正解ですが、まだ追加するパズルの小さな部分があるかもしれません。
EARには、複数のEJBモジュールとWebモジュールが含まれている場合があります。時折、どちらが最初に起動するのかを知る必要があることもあります。
EARのMETA-INFディレクトリのJava EE 6 application.xmlファイルに<initialize-in-order>true</initialize-in-order>
を使用すると、これに関する確信が得られます。
リストされたモジュールの順番は、起動順序を決定します。特定の@Startupアノテーション付きSingletonは、最初または最後のモジュールが起動されたときに呼び出されます。