我将我的camel配置为从特定FTP目录下载所有文件。现在这一切都很简单,一切似乎都很好。但是,当文件在名称中包含空格(例如 File 123.csv )时,我遇到了错误。我知道我可以使用转义字符专门定位文件。唯一的困难是这些文件本质上是动态的并且每天都在变化,因此我不知道哪些文件可能有空格也可能没有空格。 我想我可以只读取所有文件URI并从那里进行调整。但我想知道是否有任何Camel特定的方法来处理这个问题。
错误:java.lang.IllegalArgumentException: Illegal character in path at index 60: hdfs://test.net/user/CamelTests/File Layout.csv
GenericFileOnCompletion - Rollback file strategy: org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy@fe8d1b for file: RemoteFile[File Layout.csv]
骆驼代码
from("{{ftp.serverLP}}/Memo/Loss?username=ftp&password=pass")
.to("hdfs2://Test.net/user/CamelTests/?fileSystemType=HDFS")
.log("Downloaded file ${file:name} complete.");
答案 0 :(得分:1)
尝试更改.to(..)
以使用非HDFS文件系统。
发布的错误似乎表明正在复制文件的目标(HDFS)存在问题,而不是FTP源。