以下のように構成されたアイテムライターがあり、xml を生成します。
<beans:bean id="delegateItemWriter" class="org.springframework.batch.item.xml.StaxEventItemWriter" scope="step">
<beans:property name="resource" value="file:#{jobParameters['OutputDirPath']}${myFileName}" />
<beans:property name="overwriteOutput" value="true"/>
<beans:property name="rootTagName" value="disclosure-feed" />
<beans:property name="rootElementAttributes" >
<beans:map>
<beans:entry key="xmlns:xsi" value="http://www.w3.org/2001/XMLSchema-instance" />
<beans:entry key="xsi:noNamespaceSchemaLocation" value="XYZ.xsd"/>
</beans:map>
</beans:property>
<beans:property name="marshaller" ref="xmlMarshaller" />
</beans:bean>
すべてが正しいように見えますが、以前の実行の失敗を修正した後にジョブを再起動すると、次のエラーが発生することがあります。
2013-07-19 02:14:34,921 [main] ERROR org.springframework.batch.core.step.AbstractStep - Encountered an error executing the step
org.springframework.batch.item.ItemStreamException: File is not writable: [/myOutputDir/myOutput.xml]
前回の実行時に失敗した場所からではなく、最初からジョブが新たに開始されるように、手動で batch_ テーブルからジョブ エントリを削除すると、ファイルが期待どおりに生成されます。
この問題の理由は何ですか? それを解決する方法? 不足している構成要素はありますか?
読んでくれてありがとう!