環境
- Java SE Development Kit 7u60
- Eclipse Luna(4.4.0) IDE for Java EE Developers | Packages
- GlassFish Server 4
やったこと
jBatchのjob.xmlをこんな感じに書いたらエラーになって動かなかった。
<reducer ref="myReducer" /> <collector ref="myCollector" /> <analyzer ref="myAnalyzer" />
スローされる例外はこんな感じ。
javax.batch.operations.JobStartException: java.lang.IllegalArgumentException: xJCL invalid per schema
原因とか
それぞれの順番を下記のように書かないといけない。
<collector ref="myCollector" /> <analyzer ref="myAnalyzer" /> <reducer ref="myReducer" />
jBatch仕様のJSLのXSDを見るとこうなってるんで、順番通りに書かないとxmlのパース時にエラーとなるのが見て取れる。
<xs:complextype name="Partition"> <xs:sequence> <xs:element name="collector" type="jsl:Collector" minoccurs="0" maxoccurs="1"> </xs:element> <xs:element name="analyzer" type="jsl:Analyzer" minoccurs="0" maxoccurs="1"> </xs:element> <xs:element name="reducer" type="jsl:PartitionReducer" minoccurs="0" maxoccurs="1"> </xs:element> </xs:sequence> </xs:complextype>