我正在使用spring批处理直接从FTP位置读取,处理,编写和创建文件。 我可以使用以下配置来读取文件。
<bean id="cvsFileItemReader2" class="org.springframework.batch.item.file.FlatFileItemReader">
<!-- Read a csv file -->
<property name="resource"
value="ftp://user123:12496@ftp.myftp.net/Ftpfiles/it/se/dev/expfiles/ABEXCEP.CSV"/>
但我正在尝试使用FlatFileItemWriter编写,如下所示
<bean class="org.springframework.batch.item.file.FlatFileItemWriter">
<property name="resource" value="ftp://user123:12496@ftp.myftp.net/Ftpfiles/it/se/dev/expfiles/ABFIXED.TXT" />
获得以下异常
java.io.FileNotFoundException:
URL [ftp://user123:12496@ftp.myftp.net/Ftpfiles/it/se/dev/expfiles/ABFIXED.TXT]
cannot be resolved to absolute file path because it does not reside in the file system:
ftp://user123:12496@ftp.myftp.net/Ftpfiles/it/se/dev/expfiles/ABFIXED.TXT
at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:205)
感谢您的任何帮助..谢谢
答案 0 :(得分:2)
Springs org.springframework.core.io.Resource有一个名为org.springframework.core.io.WritableResource的子接口,我找到的唯一实现是:FileSystemResource和FileSystemContextResource。所以不可能直接在ftp上写。你可以做的是在磁盘上本地写入并编写一个从磁盘上传到ftp的tasklet。
答案 1 :(得分:2)
我认为您无法创建远程FTP Resource
。一种解决方案是使用 Spring Batch 生成文件,然后您可以使用Spring Integration的FTP/FTPS Adapters将生成的文件传输到FTP服务器。
答案 2 :(得分:1)
对此类工作使用spring-integration(请参阅this example)以获得进一步说明
答案 3 :(得分:0)