4

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 uaing を使用して書き込もうとしています

<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)

これに関する助けに感謝します..ありがとう

4

4 に答える 4

2

リモート FTP を作成できないと思いますResource。1 つの解決策は、Spring Batchを使用してファイルを生成することです。その後、Spring IntegrationFTP/FTPS アダプターを使用して、生成されたファイルを FTP サーバーに転送できます。

希望はあなたを助けることができます。

于 2013-10-25T13:51:31.247 に答える
2

Springs org.springframework.core.io.Resource には org.springframework.core.io.WritableResource と呼ばれるサブインターフェースがあり、私が見つけた唯一の実装は FileSystemResource と FileSystemContextResource でした。そのため、ftp で直接書き込むことはできません。できることは、ディスクにローカルに書き込み、ディスクから ftp にアップロードするタスクレットを作成することです。

于 2013-10-25T13:14:12.547 に答える
1

詳細な説明については、このタイプのジョブに spring-integration を使用してください (この例を参照)。

于 2013-10-25T13:54:55.990 に答える
0

Tasklet を使用して、sftp 経由でファイルを送信します。このリンクを参照してください。詳細については、リンクを参照してください/これのコーディング。

于 2017-02-16T05:07:07.700 に答える