Camel FTP无法基于包含过滤器检索文件

时间:2016-06-30 19:02:25

标签: ftp apache-camel

我正在使用Apache camel 2.13.2并且我正在尝试连接到FTP以根据include参数中给出的文件表达式检索文件。我可以看到ftp帐户中的文件夹中有文件,但是camel并没有提取文件。我可以在日志中看到连接成功,但交换返回为null。相同的代码适用于其他ftp帐户。有人可以帮助理解我做错了什么,以及我可以尝试解决这个问题的事情吗?

ftp://XXXXXXX@XXXXXXX.XXXXXXX.XXX:21/testfolder/testfold/test?password=RAW(XXXXXXX)&binary=true&pollStrategy=#xxxFTPPollingConsumerPollStrategy&throwExceptionOnConnectFailed=true&sendEmptyMessageWhenIdle=true&delay=15000&maxMessagesPerPoll=30&stepwise=false&consumer.bridgeErrorHandler=true&idempotent=true&idempotentKey=${file:name}-${file:size}-${file:modified}&readLock=changed&include=.*

1 个答案:

答案 0 :(得分:2)

首先尝试不使用任何过滤器来查看是否存在问题。

在任何情况下,根据服务器和客户端防火墙以及linux vs windows编码(用于文件传输),您应该尝试以下URI参数:

binary=true
passiveMode=true

大多数情况下使用默认被动模式 camel将不会列出任何文件,文件传输可能会因ArrayOutOfBounds错误而失败。

要仔细检查,请设置要调试的camel的日志记录级别以及跟踪ftp组件:

logging.level.org.apache.camel=DEBUG
logging.level.org.apache.camel.component=TRACE

没有 passiveMode = true 您可能会注意到列表文件找不到任何文件。

可以找到有关FTP被动模式的更多信息here