2

首先:我是骆驼新手:-)

我想将文件从输入目录传输到输出目录并做一些 java 的事情。如果出现问题,我想将文件移动到错误目录并回滚以移动到输出目录。

这是我在 java dsl 中的路线:

onException(Exception.class).handled(true).to("file://C:/temp/camel/error");
from("file://C:/temp/camel/in?delete=true").to("file://C:/temp/camel/out").bean(ServiceBean.class, "callWebservice");

如果在 ServiceBean 中抛出错误,该文件将被复制到错误文件夹中,但它也保留在 out 目录中。

回滚的最佳方法是什么?

谢谢

4

2 回答 2

7

There is a moveFailed option. Just use that, then you dont need the onException etc. http://camel.apache.org/file2

from("file://C:/temp/camel/in?delete=true&moveFailed=C:/temp/camel/error")
  .to("file://C:/temp/camel/out")
  .bean(ServiceBean.class, "callWebservice");

And instead of storing to out in the route, then just use the move option so it becomes

from("file://C:/temp/camel/in?move=/temp/camel/out&moveFailed=/temp/camel/error")
  .bean(ServiceBean.class, "callWebservice");
于 2012-06-07T04:12:00.830 回答
0

我认为您不能轻松地“回滚”文件系统操作。也许您可以重新设计您的流程,首先将文件复制到某个中间“阶段”目录,完成您需要的工作,并根据该工作的结果将文件移动到“输出”或“错误”目录。

于 2012-06-06T18:38:41.927 回答