アプリケーションを最初に動作させる時に、環境設定ファイルの読み込みやクラスのロードなどのために時間がかかることがあります。
コンテナの起動時にアプリケーションを一度動作させることで、このような初期化時間の影響を少なくすることができます。
Webアプリケーションの場合
Webアプリケーションでは、サーブレットのスタートアップを利用して、コンテナの起動時にアプリケーションを動作させます。
以下の手順で作成します。
UjiServletを継承して、スタートアップ用のサーブレットクラスを作成します。
initメソッドからUjiServletのinitApplicationメソッドを呼び出します。
サーブレットの記述例
public class MyServlet extends UjiServlet {
   public MyServlet() {
   }
   public void init() {
     try {
       ApplicationProfile ap = initApplication();
     } catch(Exception e) {
       e.printStackTrace();
     }
   }
 }固有のアプリケーション初期化処理を記述する場合は、アプリケーションクラスを利用して記述します。
スタートアップ用のサーブレットをWebアプリケーション環境定義ファイル(web.xml)で指定します。
load-on-startupを指定することで、コンテナの起動時に呼び出されます。
web.xmlの記述例
  <servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>somePackage.MyServlet</servlet-class>
    <load-on-startup/>
  </servlet>EJBアプリケーションの場合
Interstage Application Serverのワークユニット機能を利用して、ワークユニット起動時にApcoordinatorで作成したセションBeanを実行することができます。
Interstage管理コンソールでワークユニットを選択し、[実行クラス][新規作成]で、以下の情報を作成します。
項目  | 指定方法  | 
|---|---|
名前  | Initializerなど、適宜設定します。  | 
クラス名  | com.fujitsu.uji.ejb.workunit.Initializerを指定します。  | 
実行順  | 任意に指定します。  | 
引数  | セションBeanのJNDI名をjava:comp/env/ejb/SomeEJBのような形式で指定します。  | 
例外発生時のワークユニット起動  | 任意に指定します。  | 
ワークユニット多重時の呼び出し  | [すべてのVMで呼び出し]を選択します。  | 
クラスを実行するコンテナ  | [EJBコンテナ]を選択します。  | 
固有のアプリケーション初期化処理を記述する場合は、以下のようにビジネスクラスを作成します。
作成したビジネスクラスは、Beanなし、コマンドはuji.initializeとしてコマンドマップに登録します。
ビジネスクラスの記述例
package somepackage;
import com.fujitsu.uji.GenericHandler;
public class SomeHandler extends GenericHandler
{
    public void startEjb(DispatchContext context) {
      ...
    }
    ...
}コマンドマップの記述例
;uji.initialize=somepackage.SomeHandler.startEjb
関連項目
APIリファレンスのUjiServletクラス