2

まず第一に:私はラクダの初心者です:-)

入力ディレクトリから出力ディレクトリにファイルを転送して、Java処理を実行したいと思います。問題が発生した場合は、ファイルをエラーディレクトリに移動し、ロールバックして出力ディレクトリに移動します。

これは、javadslでの私のルートです。

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

moveFailed オプションがあります。それを使用するだけで、onExceptionなどは必要ありません。 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");

そして、ルートに保存する代わりに、移動オプションを使用して、

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 に答える