spring batch flatfileitemreader输入资源必须存在错误

时间:2015-08-31 21:48:52

标签: spring spring-batch

我是春天新手,我的java生锈了,请原谅我这是一个简单的问题。

我有两步工作。第一步是查询MongoDB并编写文件。第二步是读取文件并进行处理。

我正在使用FlatFileItemReader进行第二步。在第一步中,我正在编写文件而没有指定任何路径。

当我从sts中运行作业时,第一步在我的sts工作区文件夹的项目目录中创建文件。

第二步抛出输入资源必须存在的异常。我尝试了各种选项,例如file://,file:/等等,没有任何成功。

感到困惑的是为什么读取不会在写入的同一位置查找文件。

无论如何,我们将非常感谢您解决问题的任何帮助。

第一步不使用FlatFileItemWriter,而只是使用java编写文件的tasklet。

这是配置:                                             

    <batch:step id="step2">
        <batch:tasklet>
            <batch:chunk reader="customerItemReader" processor="customerProcessor" writer="mongodbItemWriter"
                commit-interval="1">
            </batch:chunk>
        </batch:tasklet>
    </batch:step>


</batch:job>


<bean id="loadFromMongo" class="org.springframework.batch.core.step.tasklet.MethodInvokingTaskletAdapter">
     <property name="targetObject">
      <bean class="testMongo.MongoLoader"/>
  </property>
 <property name="targetMethod" value="loadFromMongo" />
</bean>

 <bean id="customerItemReader"
  class="org.springframework.batch.item.file.FlatFileItemReader">
 <property name="resource" value="classpath:Customers.txt"/>

<property name="lineMapper" ref="customerLineMapper"/>

<bean id="customerLineMapper"
     class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
 <property name="lineTokenizer" ref="customerLineTokenizer"/>
 <property name="fieldSetMapper" ref="customerFieldSetMapper"/>

<bean id="customerLineTokenizer" class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
</bean>

<bean id="customerFieldSetMapper" class="testMongo.CustomerFieldSetMapper"> 
</bean>

<bean id="customerProcessor" class="testMongo.CustomerItemProcessor"> 
</bean>

<bean id="mongodbItemWriter" class="org.springframework.batch.item.data.MongoItemWriter">
    <property name="template" ref="mongoTemplate" />
    <property name="collection" value="creditReport" />
</bean>


<!--  commenting out copied stuff from mkyong SpringBatch Example for now
<bean id="xmlItemReader" class="org.springframework.batch.item.xml.StaxEventItemReader">
    <property name="fragmentRootElementName" value="record" />
    <property name="resource" value="classpath:xml/report.xml" />
    <property name="unmarshaller" ref="reportUnmarshaller" />
</bean>

<bean id="reportUnmarshaller" class="org.springframework.oxm.xstream.XStreamMarshaller">

    <property name="aliases">
        <util:map id="aliases">
            <entry key="record" value="com.mkyong.model.Report" />


        </util:map>
    </property>
</bean>
 -->

0 个答案:

没有答案