WebSphereにアプリケーションEARをデプロイしています。アプリケーションが起動されるたびに1回限りの初期化コードを呼び出す必要があるアプリケーションのライフサイクルリスナーを作成するにはどうすればよいですか?WebLogicServerのクラスweblogic.application.ApplicationLifeCyleListener
とに似たものが必要weblogic.application.ApplicationLifecycleEvent
です。
質問する
3491 次
3 に答える
6
EJB 3.1 仕様では、ベンダーに依存しないポータブルな方法でアプリケーションの初期化に使用できるシングルトン セッション Beanが追加されました。
次の例は、Developing Singleton Session Beansから引用したもので、@Startup
アノテーションを使用して起動初期化を行う singleton セッション Bean を示しています。
@Singleton
@Startup
public class ConfigurationBean implements Configuration {
@PostConstruct
public void initialize() {
// 1. Create the database table if it does not exist.
// 2. Initialize settings from the database table.
// 3. Load a cache.
// 4. Initiate asynchronous work (for example, work to a messaging queue or to
// calls to asynchronous session bean methods.
}
// ...
}
Java EE 6 仕様の一部である EJB 3.1 を使用している場合、これがアプリケーションの標準的な初期化方法です。WebSphere 8 および 8.5 は、この仕様レベルをサポートしています。
古いバージョンの WebSphere または仕様を使用していて、アップグレードしたくない場合は、以前のバージョンでこの目的のために使用されていた WebSphere 拡張機能であるStartup Beansを使用できます。
ウドの答えにも+1。
于 2012-10-13T09:50:12.617 に答える
2
Websphereのライフサイクルリスナーがあるかどうかはわかりません。ただし、起動時に初期化されるダミーサーブレットを作成できます。
<servlet>
<display-name>YourServlet</display-name>
<servlet-name>YourServlet</servlet-name>
<servlet-class>com.example.YourServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>YourServlet</servlet-name>
<url-pattern>/YourServlet</url-pattern>
</servlet-mapping>
そのサーブレットを呼び出す必要はありません。自分自身をロードします。
于 2012-10-13T06:51:49.910 に答える
2
Java EE ServletContextListenerを使用しますか?
于 2012-10-16T16:48:56.593 に答える