为什么 int-ftp:outbound-gateway payload 不是 List<java.io.File>?
Why int-ftp:outbound-gateway payload is not List<java.io.File>?
根据http://docs.spring.io/spring-integration/reference/html/ftp.html#ftp-outbound-gateway,mget 负载是一个文件列表
mget retrieves multiple remote files based on a pattern and supports the following option:
...
The message payload resulting from an mget operation is a ListFile> object - a List of File objects, each representing a retrieved file.
我有以下配置
<int-ftp:outbound-gateway
session-factory="ftpSesionFactory"
request-channel="request-channel"
reply-channel="reply-channel"
auto-create-directory="true"
local-directory="${local-directory}"
command="mget"
command-options="-stream"
expression="payload">
<int-ftp:request-handler-advice-chain>
<int:retry-advice />
</int-ftp:request-handler-advice-chain>
</int-ftp:outbound-gateway>
<int-file:splitter input-channel="reply-channel" output-channel="logger"/>
但是有效载荷是一个列表<FTPFile>,拆分器不起作用。这是一个错误吗?如何在有效负载中获取下载的 Listjava.io.File>(如文档所述)?
解决方法是使用另一个组件从本地目录读取文件,如 所述。
我正在使用 spring-integration 4.2.5 和 commons-net-2.0。
是什么让您相信它是 List<FTPFile
?
This test 显示它是 List<java.io.File>
.
ls
命令 returns 是 String
或 FTPFile
的列表,具体取决于 -1
选项。
最后,-stream
不支持 mget
,仅支持 get
。
此外,您不希望那里有文件拆分器 - 读取每个文件 - 您需要一个常规 <int:splitter/>
将 List<File>
拆分为单独的文件;然后文件拆分器将读取文件行。
根据http://docs.spring.io/spring-integration/reference/html/ftp.html#ftp-outbound-gateway,mget 负载是一个文件列表
mget retrieves multiple remote files based on a pattern and supports the following option:
...
The message payload resulting from an mget operation is a ListFile> object - a List of File objects, each representing a retrieved file.
我有以下配置
<int-ftp:outbound-gateway
session-factory="ftpSesionFactory"
request-channel="request-channel"
reply-channel="reply-channel"
auto-create-directory="true"
local-directory="${local-directory}"
command="mget"
command-options="-stream"
expression="payload">
<int-ftp:request-handler-advice-chain>
<int:retry-advice />
</int-ftp:request-handler-advice-chain>
</int-ftp:outbound-gateway>
<int-file:splitter input-channel="reply-channel" output-channel="logger"/>
但是有效载荷是一个列表<FTPFile>,拆分器不起作用。这是一个错误吗?如何在有效负载中获取下载的 Listjava.io.File>(如文档所述)?
解决方法是使用另一个组件从本地目录读取文件,如
我正在使用 spring-integration 4.2.5 和 commons-net-2.0。
是什么让您相信它是 List<FTPFile
?
This test 显示它是 List<java.io.File>
.
ls
命令 returns 是 String
或 FTPFile
的列表,具体取决于 -1
选项。
最后,-stream
不支持 mget
,仅支持 get
。
此外,您不希望那里有文件拆分器 - 读取每个文件 - 您需要一个常规 <int:splitter/>
将 List<File>
拆分为单独的文件;然后文件拆分器将读取文件行。