Apache Camel,添加的路由不会抛出OnException

时间:2016-04-19 07:17:12

标签: java spring spring-mvc apache-camel

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

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

基本上,您可以获取驼峰上下文并使用文件添加路径。

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

回顾一下:

  1. 我有一个弹出上下文文件,如下所示:
  2. <camel:camelContext>
        <onException id="exceptions">
         <handled>
            <constant>true</constant>
          </handled>
          <process ref="logExceptionProcessor"/>
          <to uri="activemq:adapterLOG"/>
          <process ref="mailSender"/>
        </onException>
        ...
    
    1. 在我添加了获取驼峰上下文的路线后,添加的路线不会抛出OnException设置。
    2. 你对这种行为有什么建议吗?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

也许它无法完成:): “当添加如本页所示的路由时,路由是隔离的,不能重复使用任何现有的onException,拦截等。”来自http://camel.apache.org/loading-routes-from-xml-files.html