全局异常处理程序 - mule

时间:2016-05-09 18:55:37

标签: mule anypoint-studio

我们有一个要求,我们想要编写一个全局异常处理程序,以便任何单个流(我们有80多个mule流)的任何异常都被这个全局异常处理程序捕获。

基本上我们想要添加一个全局配置并关联一个默认的全局捕获异常策略,以便在这里处理任何流中的任何异常。

每个流程添加每个'捕获异常策略'但我必须重复50次以上的类似代码,这是我想要避免的原因。

另外,请注意我想将特定参数传递给此全局异常策略,以便此全局异常策略也提供特定于流的信息。请建议。

注意:我没有在mule UI的“全局元素”中看到全局捕获异常策略选项。

参考文献:

Mule特定文档没有明确说明。

https://docs.mulesoft.com/mule-user-guide/v/3.7/error-handling

这个要求看起来非常相似,但关于传递参数等不太清楚:

How to add a global exception handler/logger once in Mule

2 个答案:

答案 0 :(得分:1)

明星的建议很好。此外,如果要将参数传递给全局异常处理程序,一个好的方法是设置一个全局异常读取的流变量,并且永远不要忘记在每个流上为此变量赋值。

答案 1 :(得分:1)

enter image description here您应该能够在UI中看到它。不知道为什么你不能。如果我的理解是正确的。请找截图。

  <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" basePath="test" doc:name="HTTP Listener Configuration"/>
     <flow name="TestFlow">
    <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/>
    <logger level="INFO" doc:name="Logger"/>
    <set-payload value="#['Hello World']" doc:name="Set Payload"/>
    <exception-strategy ref="Choice_Exception_Strategy" doc:name="Reference Exception Strategy"/>
</flow>
<choice-exception-strategy name="Choice_Exception_Strategy">
    <catch-exception-strategy when="exception.causeMatches(java.lang.ArithmeticException)" doc:name="Catch Exception Strategy- Arithmetic Exception">
        <logger level="INFO" doc:name="Logger"/>
    </catch-exception-strategy>
    <catch-exception-strategy doc:name="Catch Exception Strategy-All Exception">
        <logger level="INFO" doc:name="Logger"/>
    </catch-exception-strategy>
</choice-exception-strategy>

根据您的评论,您可以使用适合您的任何可行方法。

如果您使用的是旧版本。调色板看起来像这里提到的网址 https://docs.mulesoft.com/mule-user-guide/v/3.7/catch-exception-strategy