Apache Camel 文件追加在 Windows 中不起作用

Apache Camel File Append Not Working in Windows

我有一个简单的路线,我将一些字符串写入输出文件,然后尝试附加原始文件的内容。但它会忽略并覆盖文件。

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")
    ;

我添加了延迟以观察发生了什么。

  1. 如果有一个名为 myFile.txt 的输入文件,Camel 会按预期选择该文件。
  2. 它将文件保存到客户交易所 属性,如代码所示。
  3. 它打开一个名为 myFile.txt 的文件并写入内容“第一行!”在其中等待延迟到期。
  4. 我可以打开并验证内容,一切看起来都很好。
  5. 延迟到期后,Camel 会使用从输入文件夹中选取的原始内容覆盖文件 myFile.txt(即使我已要求 Camel 追加)。

我在这里做错了吗?不确定这是否特定于 Windows 10。我使用的是 Camel 版本 2.24.1。谢谢你的时间。

这是版本 2.24.3 中修复的错误 CAMEL-14127。您可以升级,或使用带有 charset 选项的解决方法。

.to("file://outputFolder?fileExist=Append&charset=utf-8")