サンプルプロジェクトを動作させる
1.サンプルプロジェクトの作成
「ファイル」「新規」「その他」「Springプロジェクト」「Simple Spring Batch Project」を選択
任意のパッケージトップレベルドメイン名を指定
「xxx.yyy.zzz」といった3つ以上のラベルの指定が必須。
2.Maven 依存関係の整備
サンプルプロジェクト作成後、Mavenにより各種ライブラリがダウンロードされます。
※破損したjarファイルがダウンロードされる件は初回以外再現しないため割愛。
実行時にLOC header 関連のエラーが発生した場合、下記サイトから対象のクラスが格納されているjarを最新化する。
ttp://mvnrepository.com/
3.サンプルプロジェクトの実行
対象のプロジェクトを右クリックし「実行」「実行の構成」を選択
メイン・クラスに
「org.springframework.batch.core.launch.support.CommandLineJobRunner」を指定。
プログラムの引数に
「classpath:/launch-context.xml job1」を指定し実行。
コンソールに以下の様に表示されることを確認
INFO [パッケージ名.ExampleItemWriter] - <[Hello world!]>
4.サンプルプロジェクトの実行でうまくいかない場合
・IllegalStateExceptionが発生する。
[現象]下記のログが出力され、異常終了する。
java.lang.IllegalStateException: CGLIB is required to process @Configuration classes.
Either add CGLIB to the classpath or remove the following @Configuration bean definitions: [exampleConfiguration]
[原因]cglib-nodep-2.2.jarが不正。
[対策]cglib-nodep-2.2.jarを最新化する。
このライブラリは315KBのものと435KBのものが存在しているが、315KB版でないと上記例外が発生した。
ttp://mvnrepository.com/から315KBのものを取得する。
・BeanCreationExceptionが発生する。
[現象]下記のログが出力され、異常終了する。
BeanCreationException: Error creating bean with name org.springframework.jdbc.datasource.init.DataSourceInitializer#0':
Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource';
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
No bean named 'dataSource' is defined
[原因]
①component-scanが失敗している。
②クラスファイルが作成されていない。
[対策]
①launch-context.xmlの記述を見直す。
下記例の通り指定されていること。プロジェクト作成後にパッケージ名を修正した場合に注意。
ソースのパッケージのようにリファクタリングで自動修正されない。
<context:component-scan base-package="com.sprite2.batch" />
②クラスファイルが作成されていない。
クラス作成先はデフォルトで下記。下記を確認し、クラスファイルが存在してなければNG。
[ワークスペース]/[プロジェクト]/target/classes
上記の手順では明示的にビルドを行っていないため、自動ビルドが実行されていないタイミングだとクラスが存在しない。
また「実行」から選択できる「Maven clean」も注意。
Eclipseのクリーンと異なり、実行ファイルを削除するのみで再ビルドは行われない。
明示的にビルドしなおす&jarファイルまで作らない場合はEclipseのクリーンを実行。
最終更新:2014年05月01日 14:55