gpt4 book ai didi

spring-batch - 在 spring-batch 中使用 FlatFileItemWriter 创建新的输出文件

转载 作者:行者123 更新时间:2023-12-02 07:28:33 27 4
gpt4 key购买 nike

我有一个简单的 spring 批处理作业 - 逐行读取文件,对输入字符串执行某些操作,然后写入一些输出。输出文件包含输入的每一行以及该行的一些处理状态(成功/失败)。从以下位置读取文件: <dir>/<inputFolder>/<inputFileName>并将处理后的输出写入 <dir>/<outputFolder>/<inputFileName>所有这些值都作为 jobParameters 传递
文件阅读器是这样的:

<bean id="itemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
<property name="resource" value="file:#{jobParameters['cwd']}/#{jobParameters['inputFolder']}/#{jobParameters['inputFile']}" />

<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">

<property name="lineTokenizer">
<bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="delimiter" value="," />
</bean>
</property>
<property name="fieldSetMapper" >
<bean class="org.springframework.batch.item.file.mapping.PassThroughFieldSetMapper" />
</property>
</bean>
</property>
</bean>

项目编写器是这样的:

<bean id="itemWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step" >
<property name="resource" value="#{jobParameters['cwd']}/#{jobParameters['outputFolder']}/#{jobParameters['inputFile']}" />
<property name="lineAggregator">
<bean class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
</property>
</bean>

当我运行此批处理作业时,读取器正确读取文件,处理器完成其工作,但 itemWriter 抛出 FileNotFound 异常

2014/06/27 18-02-31,168:OUT:ERROR[Encountered an error executing the step]
org.springframework.batch.item.ItemStreamException: Could not convert resource to file: [class path resource [S:/temp/seller-optin-batch/output/sellersToOptin_test.txt]]
at org.springframework.batch.item.file.FlatFileItemWriter.getOutputState(FlatFileItemWriter.java:374)
at org.springframework.batch.item.file.FlatFileItemWriter.open(FlatFileItemWriter.java:314)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
...
Caused by: java.io.FileNotFoundException: class path resource [S:/temp/seller-optin-batch/output/sellersToOptin_test.txt] cannot be resolved to URL because it does not exist
at org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:179)
at org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:48)
at org.springframework.batch.item.file.FlatFileItemWriter.getOutputState(FlatFileItemWriter.java:371)
... 58 more
2014/06/27 18-02-31,168:ERR:ERROR[Encountered an error executing the step]

[org.springframework.batch.item.file.FlatFileItemWriter.getOutputState threw org.springframework.batch.item.ItemStreamException: Could not convert resource to file: [class path resource [S:/temp/seller-optin-batch/output/sellersToOptin_test.txt]]]
Batch Execution Failed!

每次运行批处理作业时,输出文件还不存在。 itemWriter 必须创建它。不能使用 FlatFileItemWriter 吗?

最佳答案

添加“file://”前缀解决了我的问题。谢谢@LucaBassoRicci。

关于spring-batch - 在 spring-batch 中使用 FlatFileItemWriter 创建新的输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24462669/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com