Jar中的MultiResourceItemReader不读取资源文件

时间:2014-07-26 10:42:41

标签: spring-batch

我创建了一份工作并将其存档到一个罐子里。

当我使用exec:java运行时,它可以运行。当我使用java -cp myjar.jar调用它时,MultiResourceItemReader似乎无法读取从ftp服务器获取的资源。

<bean id="merge.reader.resource"
      class="org.springframework.batch.item.file.MultiResourceItemReader"
      scope="step">
  <property name="resources" value="file:job1/merge/fetched/*.xml" />
  ...
</bean>

我做错了什么?

$ ls -l
mybatch.jar
job1/merge/fetched/xxxx.xml
$ java -cp mybatch.jar x.y.z.Main

我创建了一个扩展MultiResourceItemReader的类,并检查了文件来源是通过setResources方法设置的,并通过setDelegate进行委托。

<!--bean id="merge.reader.resource"
         class="org.springframework.batch.item.file.MultiResourceItemReader" scope="step"-->
<bean id="merge.reader.resource"
      class="xxx.ExtendedMultiResourceItemReader"
      scope="step">
  <property name="strict" value="true"/>
  <property name="resources" value="file:job1/merge/fetched/*.xml"/>
  <property name="delegate" ref="merge.reader.item" />
</bean>
<bean id="merge.reader.item"
      class="org.springframework.batch.item.xml.StaxEventItemReader">
  <property name="fragmentRootElementName" value="XXX"/>
  <property name="unmarshaller" ref="merge.reader.unmarshaller"/>
</bean>
<bean id="merge.reader.unmarshaller"
      class="org.springframework.oxm.xstream.XStreamMarshaller">
  <property name="aliases" ref="merge.reader.binder"/>
  <property name="autodetectAnnotations" value="true"/>
</bean>
<util:map id="merge.reader.binder">
  <entry key="XXX" value="xxx"/>
</util:map>

我真的不明白读者为什么不处理文件。

0 个答案:

没有答案