【问题标题】:How to handle exception in blueprint route in camel project如何在骆驼项目中处理蓝图路线中的异常
【发布时间】:2019-07-10 11:02:20
【问题描述】:

我正在使用 JbossFuse 进行骆驼项目。这里我使用的是蓝图。现在我想要的是,当任何路由中出现任何异常时,将由某个处理器处理,并将有效响应返回给客户端。

【问题讨论】:

    标签: java apache-camel jbossfuse blueprint-osgi


    【解决方案1】:

    您可以使用 try catch 覆盖蓝图文件中的任何路由并处理对客户端的最终响应。逻辑类似于:

    <route id="route_1">
        <from id="_from_1" uri="direct:processDemo1"/>
        <doTry id="_doTryDemo1">
            <process id="_process_processDemo1" ref="processorBean"/>
            <doCatch id="_doCatchDemo1">
                <exception>java.lang.Exception</exception>
                <to id="_handleExceptionDemo1" uri="direct:HandleException_demo1"/>
            </doCatch>
            <doFinally id="_doFinallyDemo1">
                <log id="_log_Demo1Process_finally" message="Demo1 operation completed"/>
            </doFinally>
        </doTry>
    </route>
    

    这里processorBean 是处理Demo1 路由的Bean 类,uri="direct:HandleException_demo1" 是另一个路由,如果Demo1 路由出现异常将被调用。所以这条路线的例外路线将是

    <route id="routeDemo1Exception">
        <from id="_fromdemo1Exception" uri="direct:HandleException_demo1"/>
        <log id="log_demo1Exception" message="Demo1 Exception called"/>
        <process id="_process_exception_Demo1" ref="processDemo1ExceptionBean"/>
    </route>
    

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 2020-05-13
      • 2013-08-13
      • 2018-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多