【问题标题】:Apache Camel, routes added don't throw OnExceptionApache Camel,添加的路由不会抛出 OnException
【发布时间】:2016-04-19 07:17:12
【问题描述】:

我写的是骆驼和春天的世界!

我正在使用 recipe 以编程方式添加路线。

基本上你得到骆驼上下文并使用文件添加你的路线。

这就是问题所在:
在运行时添加的路由不会触发任何OnException,在 Spring 读取的上下文文件中设置。

回顾一下:

  1. 我有一个 spring 上下文文件,如下所示:
<camel:camelContext>
    <onException id="exceptions">
     <handled>
        <constant>true</constant>
      </handled>
      <process ref="logExceptionProcessor"/>
      <to uri="activemq:adapterLOG"/>
      <process ref="mailSender"/>
    </onException>
    ...
  1. 添加获取骆驼上下文的路线后,添加的路线不会抛出 OnException 集。

你对这种行为有什么建议吗?

【问题讨论】:

    标签: java spring spring-mvc apache-camel


    【解决方案1】:

    您可以使用两种不同的错误处理程序范围。第一个是路由级别的错误处理程序,它将仅管理该路由的错误处理,第二个是对该上下文中所有内容的全局错误处理。如果您想了解更多详细信息,请转到文档中的“范围”部分。

    http://camel.apache.org/error-handler.html
    

    对于您在加载路由时的用例,您将无法利用全局错误处理程序,因为路由定义是独立于上下文创建的,然后在运行时添加到其中。这意味着您需要为每个单独加载的路由定义错误处理。注意:这并不意味着您不能创建自己的通用错误处理策略并让您的每个路由都引用它。

    【讨论】:

      【解决方案2】:

      也许做不到 :) : “如本页所示添加路由时,路由是隔离的,不能重用任何现有的 onException、intercept 等。”来自http://camel.apache.org/loading-routes-from-xml-files.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-29
        • 1970-01-01
        • 2018-07-01
        相关资源
        最近更新 更多