2

Java DLS 構文と非常によく似た Groovy DSL 構文で Camel ルートを定義できる Grails ルーティング プラグインを使用しています。

次の RouteBuilder があるとします。

class MyRoute extends RouteBuilder {
  from('activemq:route1')
    .to('someProcessor1')
    .to('direct:route2')

  from('direct:route2')
    .to('someProcessor2')

  onException(Throwable.class).useOriginalMessage().handled(true)
    .to('activemq:route.failed')
}

で始まるメッセージがありactivemq:route1、次に移動しdirect:route2ますが、で失敗すると、キューsomeProcessor2で開始したメッセージになります...しかし、それは私が望むものではありません。でエラーが発生した場合は、メッセージが開始された時点のメッセージが必要です(同様に、でエラーが発生した場合は、エラーが発生したキューのメッセージが必要です)。activemq:route1activemq:route.failedsomeProcessor2direct:route2someProcessor1activemq:route1

RouteDefintion (つまりfrom(<uri>)) の先頭にある元のメッセージを「リセット」できる Apache Camel 機能はありますか?

4

1 に答える 1

1

direct:ルート(seda、vm、activemq)に参加する以外に何かを使用すると、提案どおりに動作します...それ以外の場合は、メッセージの関連する状態をヘッダーに明示的に保存し、onException 句などで復元することもできます。

于 2012-11-28T23:13:32.070 に答える