骆驼:从同一目录读取和写入

我有这条骆驼路线:


final String URI_FILE = "file:{{PATH}}";

final String POOLER = "&scheduler=quartz2&scheduler.cron=0+0/10+*+*+*+?";


from(URI_FILE + POOLER)

.pollEnrich().simple("{{URL_CHECKER}}",String.class).aggregationStrategy(new myEstratey())

.choice()

    .when(exchangeProperty("CONTINUE").isEqualTo(true))

        .log("Condition was met")

        .to(URI_DIRECT) //To another route

     .endChoice()

     .otherwise()

        .log("I'll try again later")

        .to(URI_FILE) 

.endChoice();

我想每10 分钟从PATH读取一个文件,然后使用 pollEnrich 检查条件。如果满足条件,路由继续。在另一种情况下,我想将文件返回到同一目录 ( PATH )。


这条路线工作正常,甚至显示日志消息“我稍后再试”,但在那之后,文件就消失了,没有返回到PATH


怎么了?在骆驼中不允许这样做吗?


谢谢!!


慕虎7371278
浏览 158回答 1
1回答

MM们

该文件很可能在目标目录中被覆盖,但是在完成后,它被移动到.camel目录中。这是预期的行为,请参阅文件组件文档:路由完成后(发布命令)执行任何移动或删除操作最好回滚你的路由,它默认将文件保存在源目录中。final String URI_FILE = "file:{{PATH}}";final String POOLER = "&scheduler=quartz2&scheduler.cron=0+0/10+*+*+*+?";from(URI_FILE + POOLER).pollEnrich().simple("{{URL_CHECKER}}",String.class).aggregationStrategy(new myEstratey()).choice()    .when(exchangeProperty("CONTINUE").isEqualTo(true))        .log("Condition was met")        .to(URI_DIRECT) //To another route     .endChoice()     .otherwise()        .log("I'll try again later")        .rollback() // rollback processing and keep file in original directory.endChoice();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java