4.1.4.1. JSR352バッチアプリケーションの起動

4.1.4.1.1. バッチアプリケーションの起動クラスを作成する

JSR352に準拠したバッチアプリケーションの場合、バッチの起動はJSR352で規定されたAPIを使用して行う。

以下に起動例を示す。

public static void main(final String[] args) throws BatchRuntimeException {
  final String jobXml = args[0];

  // BatchRuntimeからJobOperatorを取得し、起動引数で与えられたジョブを実行する。
  final JobOperator jobOperator = BatchRuntime.getJobOperator();
  final long jobExecutionId = jobOperator.start(jobXml, null);

  // バッチの実行が終わるまで待機し、結果を判定するなどを処理をここに実装する。
}

ちなみに

jBeret(外部サイト、英語) を使用した場合、 jberet-se モジュールに含まれる起動クラスを使用してバッチアプリケーションを実行できる。

詳細は、 jberet-se モジュール内の org.jberet.se.Main クラスを参照

※プロジェクト独自で起動クラスを作成する際にも、上記 Main クラスを参考にすることができる。

4.1.4.1.2. システムリポジトリを初期化する

システムリポジトリ は、ジョブリスナーに nablarchJobListenerExecutor を設定することで初期化できる。

システムリポジトリのルートxmlファイルのファイル名は、 batch-boot.xml としクラスパス直下に配置する。 ファイル名や、配置場所を変更したい場合には、 nablarchJobListenerExecutor のパラメータで変更する。

以下に例を示す。

デフォルトの batch-boot.xml を使用する場合の例
<job id="sample-job" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
  <listeners>
    <!-- ジョブリスナーにnablarchJobListenerExecutorを設定する -->
    <listener ref="nablarchJobListenerExecutor" />
  </listeners>

  <!-- ステップ定義は省略 -->
</job>
デフォルト以外の設定ファイルを使用する例
<job id="sample-job" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
  <listeners>
    <listener ref="nablarchJobListenerExecutor">
      <properties>
        <!--
        diConfigFilePathプロパティに読み込むxmlを設定する
        この例の場合、クラスパス配下の「sample_project/batch-boot.xml」が
        システムリポジトリにロードされる
        -->
        <property name="diConfigFilePath" value="sample_project/batch-boot.xml" />
      </properties>
    </listener>
  </listeners>

  <!-- ステップ定義は省略 -->
</job>