2

我正在使用 Grails 路由插件,它允许使用与 Java DLS 语法非常相似的 Groovy DSL 语法定义 Camel 路由。

假设我有以下 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

是否有任何 Apache Camel 功能允许我在 RouteDefintion (即)开头“重置”原始消息from(<uri>)

4

1 回答 1

1

使用除了direct:加入你的路由(seda、vm、activemq)之外的东西,它会按照你的建议运行......否则,你也可以在标题中显式保留消息的相关状态并在 onException 子句中恢复它,等等。

于 2012-11-28T23:13:32.070 回答