命名输出文件给定输入文件头中的特定字段

时间:2014-09-25 16:00:22

标签: spring-batch

我对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'

有没有人知道如何继续? 提前谢谢。

0 个答案:

没有答案
相关问题