我对Spring Batch比较陌生。 我有一个带标题的输入文件。这个标题包含几个字段,其中一个是我感兴趣的(YYYYMM数据)。 这是我的配置:
<bean id="detaillesHeaderReaderCallback" class="fr.generali.ede.daemon.batch.dstaff.detailles.DetaillesHeaderReaderCallback" >
<property name="headerTokenizer" ref="headerTokenizer" />
<property name="fieldSetMapper" ref="fieldSetMapperHeaderLog07" />
<!-- need to write moisComptable to ChunkContext -->
<property name="chunkContext" value="#{chunkExecutionContext}" />
</bean>
<bean id="headerTokenizer"
class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
<property name="names" value="dummy1,moisComptable,dummy2" />
<property name="columns" value="1-22,23-28,29-146" />
</bean>
之后,在作业的下一步中,我想生成一个输出文件,其名称由静态部分和标题字段组成:
<bean id="fileItemWriterLog07" class="org.springframework.batch.item.file.FlatFileItemWriter">
<property name="resource"
value="file:${batch.coherence.out.path}/DSTAF007_LOG_#{jobExecutionContext['moisComptable']}.txt" />
<property name="shouldDeleteIfExists" value="true" />
<property name="headerCallback" ref="DetaillesHeaderWriterCallbackLog07" />
...
</bean/>
(我有两个工作,因为我先写入数据库,然后从中读取。)
正如人们猜测这不起作用,配置文件流了,所以我得到了BeanCreationExceptions。但是这给出了我想要实现的目标。 我在ChunkContext上没有例外(但是?)但是在编写器资源上却没有。这是一个例外:
Field or property 'jobExecutionContext' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext'
有没有人知道如何继续? 提前谢谢。