我正在尝试编写一个读取数据库表以获取绝对文件路径列表然后将这些文件复制到另一个文件夹的骆驼路线。但是,只有文件路径被创建为内容,而不是原始内容。
from("timer://testDataGen?repeatCount=1")
.to("sql:" + positionSql + "?dataSource=dataSource")
.split(body())
.to("file://" + positionlistDir )
.log("Finished copying the list of Files.")
请让我知道我在这里缺少什么来将绝对文件路径转换为实际文件。
更新#1。
下面的代码片段正在调用 pollEnrich()。但是 pollEnrich() 正在复制文件数,该文件数等于 sql 返回的行数,而不是根据先前交换的文件名。
String positionListSqlOptions = "?dataSource=dataSource";
// String positionSrcDirOptions = "?noop=true&delay=500&readLockMarkerFile=false&fileName=${header.positionFileToBeCopied}";
String positionSrcDirOptions = "?noop=true&delay=500&readLockMarkerFile=false&fileName=${body}";
String positionStagingDirOptionsForWriting = "?doneFileName=${file:name}.DONE";
from("timer://testDataGen?repeatCount=1")
.to("sql:" + positionListSql + positionListSqlOptions)
.split(body())
\\ Getting the column value from the resultset which is a LinkedCaseInsensitiveMap and storing in the body
.process(new positionFeederProcessor())
.setHeader("positionFileToBeCopied", body())
.pollEnrich("file://" + positionSrcDir + positionSrcDirOptions)
// .pollEnrich().simple("file://" + positionSrcDir + positionSrcDirOptions)
.to("file://" + positionStagingDir + positionStagingDirOptionsForWriting)
.log("Finished copying the list of Files.");
我仍然无法将实际文件名传递给 pollingEnrich() 端点。我也尝试从正文以及标题中提取它。可能出了什么问题。