grails - useOriginalMessage()和多个 'from'节点

标签 grails groovy apache-camel

我正在使用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:route1队列中的activemq:route.failed开头的...但这不是我想要的。如果someProcessor2失败,我希望消息以direct:route2开头(同样,如果someProcessor1失败,我希望失败的队列中出现activemq:route1消息)。

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

最佳答案

使用direct:之外的其他东西来加入您的路由(seda,vm,activemq),它将按照您的建议运行...否则,您还可以在 header 中显式保留消息的相关状态,并在onException子句中将其还原。

关于grails - useOriginalMessage()和多个 'from'节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13615958/

相关文章:

hibernate - 在resource.groovy中注册了多个Hibernate事件监听器

java - 在GGTS 3.6.4上进行调试。RELEASE无法检查并抛出异常:ContentTypeUtils.isGroovyLikeFileName(Ljava/lang/String;)Z

java - 动态 GString 创建不符合我的预期

linux - Grape 和 Yum 安装依赖有什么区别?

java - 在 apache Camel 中使用 guice

java - 在 JSP/GSP 中显示结果集

grails - 如何在Grails中记录交易事件

authentication - 具有Spring Security的自定义Http授权 header

java - 如何将 Camel 属性加载到 Bean 中?

apache-camel - Apache Camel 中的嵌入式持久性解决方案可保存死信消息