春のバッチジョブを実行するために CommandLineJobRunner を使用しています。パラメータのセットを渡したいのですが、いくつか問題が発生しています。これは私のステップです:
<bean id="loadTAReportsJob" class="org.springframework.batch.core.job.SimpleJob">
<property name="steps">
<bean id="loadStep" parent="simpleStep">
<property name="itemReader">
<bean id="reader" class="com.xyz.reporting.TAReportItemReader">
<property name="parm1" value="#{jobParameters['input.file']}" />
<property name="parm2" value="#{jobExecutionContext['input.file']}" />
<property name="parm3" value="#{stepExecutionContext['input.file']}" />
</bean>
</property>
<property name="itemWriter">
<bean id="writer" class="com.xyz.reporting.TAReportItemWriter">
<property name="reportDomainFacade" ref="reportDomainFacade"/>
</bean>
</property>
</bean>
</property>
<property name="jobRepository" ref="jobRepository"/>
</bean>
CommandLineJobRunner は次のことを報告します。
2407 [P=717580:O=0:CT] INFO support.SimpleJobLauncher - Job: [SimpleJob: [name=loadTAReportsJob]] launched with the following parameters: [{input.file=somefile.zip}{}{}{}]
しかし、私の ReportItemReader では、3 つのパラメーターはすべて完全な値に解決されます。
#{jobParameters['input.file']}
#{jobExecutionContext['input.file']}
#{stepExecutionContext['input.file']}
つまり、Spring バッチは #{JobXYZ['parm name'] を解決していないようです。
春にその構文を解決してプロパティ検索を行うには、何か特別なことをする必要がありますか? これを機能させるには、JobParameters オブジェクトまたは何かを接続する必要がありますか?
ところで - 私は Spring Batch 1.1.4 を使用して Java 1.4.2 との互換性を維持しています。