2014-04-07 46 views
0

我在Mule中創建了一個默認捕獲異常,以便在我的流程中拋出錯誤時執行。但是,似乎一旦達到異常的結束(我運行了幾個組件),流程的執行將從該點恢復,這是可以預料的,因爲錯誤已被捕獲。但是,如果捕獲異常被觸發,我希望流程的執行完全停止。我發現的唯一方法是向主流添加錯誤過濾器,但這似乎是一種臨時解決方案,因爲我必須在流的每個元素之後添加一個錯誤過濾器才能獲得預期的結果。Mule默認捕獲異常並停止流程

+1

你可以張貼一些配置?如果您發現異常,則應停止該流程。這可能是處理策略,如果你使用流程引用等。 –

+0

我的流程包含流程參考,以及包含流程參數的foreach。由於我的端點是一個HTTP(完整循環,請求和響應),因此默認的處理策略似乎是同步的。 –

+0

但是我在運行我的流程時看到的是,主流程的執行一直持續到最後,在catch(發生在流程ref中)之後 –

回答

1

在您的例外策略添加腳本組件停止流:

<scripting:component doc:name="Script"> 
     <scripting:script engine="groovy"><![CDATA[ 
      muleContext.getRegistry().get('<FLOW_NAME>').stop() 
     ]]></scripting:script> 
    </scripting:component>