问题描述
我有一条简单的路线,在该路线中,我将一些字符串写入输出文件,然后尝试附加原始文件的内容。但是它会忽略并覆盖文件。
from("file://inputFolder")
.routeId("InputFolderToTestSedaRoute")
.setProperty("myFileConsumedBody",simple("${body}"))
.setBody(constant("FirsT LINE!"))
.to("file://{{outputFolder}}")
.setBody(simple("${exchangeProperty.myFileConsumedBody}"))
.log("*** STEP 100: ${headers} :***")
.delay(10000)
.to("file://outputFolder?fileExist=Append")
;
我增加了观察发生的情况的时间。
- 如果有一个名为myFile.txt的输入文件,Camel将按预期选择该文件。
- 它将代码中的文件保留为客户交换属性。
- 它将打开一个名为myFile.txt的文件,并将内容写入“第一行!”。并等待延迟结束。
- 我可以打开并验证内容,一切看起来不错。
- 一旦延迟到期,Camel就会用从输入文件夹中选取的原始内容覆盖文件myFile.txt(即使我已要求Camel附加)。
我在这里犯错了吗?不知道这是否特定于Windows10。我使用的是Camel版本2.24.1。谢谢您的时间。
解决方法
这是2.24.3
版中已修复的错误CAMEL-14127。您可以升级,也可以使用带有charset
选项的workaroud。
.to("file://outputFolder?fileExist=Append&charset=utf-8")