2

春のバッチジョブを実行するために 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 との互換性を維持しています。

4

1 に答える 1

4

アイテム リーダーの変更を検討してください。

<bean id="reader" class="com.xyz.reporting.TAReportItemReader"> 

<bean id="reader" class="com.xyz.reporting.TAReportItemReader" scope="step">
于 2011-04-07T07:06:45.483 に答える