Spring batch MultiResourceItemReader上的Spring批处理失败

Spring batch MultiResourceItemReader上的Spring批处理失败,spring-batch,Spring Batch,我正在尝试创建一个作业,该作业将处理上一步保存的文件 作业定义如下所示: <bean id="downloadCatalogTasklet" class="DownloadCatalogTasklet" scope="step" /> <bean id="customItemReader" class="CustomItemReader" scope="step"/> <bean id="itemWriter" class="NoOpItemWriter" sc

我正在尝试创建一个作业,该作业将处理上一步保存的文件

作业定义如下所示:

<bean id="downloadCatalogTasklet" class="DownloadCatalogTasklet" scope="step" />

<bean id="customItemReader" class="CustomItemReader" scope="step"/>

<bean id="itemWriter" class="NoOpItemWriter" scope="step"/>

<bean id="multiResourceReader" class="org.springframework.batch.item.file.MultiResourceItemReader" scope="step">
        <property name="strict" value="true" />
        <property name="resources" value="file://C:/temp/unzipped/*.txt" />
        <property name="delegate" ref="customItemReader" />
    </bean>

<batch:job id="importCatalog">
   <batch:step id="downloadCatalog">
      <batch:tasklet ref="downloadCatalogTasklet" />
      <batch:next on="COMPLETED" to="processCatalog" />
      <batch:fail on="FAILED"/>
   </batch:step>
   <batch:step id="processCatalog">
      <batch:tasklet>
         <batch:chunk reader="multiResourceReader" writer="itemWriter" commit-interval="1" />
      </batch:tasklet>
   </batch:step>
</batch:job>
这是我第一次使用MultiResourceItemReader。我不知道我是否错过了什么。我正在使用SpringBatch 3.0.7和Java1.7


似乎我应该给ExecutionContext指定一个名称,但我不知道如何做。

您需要在配置中为ItemReaders指定一个名称,以便ExecutionContext中的值可以作为前缀,因此每个读取器都是唯一的。按如下方式配置读卡器,它们应该可以工作:

<bean id="multiResourceReader" class="org.springframework.batch.item.file.MultiResourceItemReader" scope="step">
      <property name="name" value="myMultiResourceItemReader"/>
      <property name="strict" value="true" />
      <property name="resources" value="file://C:/temp/unzipped/*.txt" />
      <property name="delegate" ref="customItemReader" />
</bean>

您需要在配置中为ItemReaders指定一个名称,以便ExecutionContext中的值可以作为前缀,因此每个读取器都是唯一的。按如下方式配置读卡器,它们应该可以工作:

<bean id="multiResourceReader" class="org.springframework.batch.item.file.MultiResourceItemReader" scope="step">
      <property name="name" value="myMultiResourceItemReader"/>
      <property name="strict" value="true" />
      <property name="resources" value="file://C:/temp/unzipped/*.txt" />
      <property name="delegate" ref="customItemReader" />
</bean>