4

WebSphereにアプリケーションEARをデプロイしています。アプリケーションが起動されるたびに1回限りの初期化コードを呼び出す必要があるアプリケーションのライフサイクルリスナーを作成するにはどうすればよいですか?WebLogicServerのクラスweblogic.application.ApplicationLifeCyleListenerとに似たものが必要weblogic.application.ApplicationLifecycleEventです。

4

3 に答える 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 に答える