2017-01-18 95 views
0

有沒有辦法導入一個例外條款(onException的)到駱駝的Spring XML DSL爲camelContext內使用它呢?導入免責條款(onException的)到駱駝的Spring XML DSL

它應該像routContext,這是in the camel documentation解釋。有你有一個文件,其中包含routeContext,你可以導入到你的主文件,並在camelContext使用它:

<!-- import the routes from another XML file --> 
<import resource="myCoolRoutes.xml"/> 

<camelContext xmlns="http://camel.apache.org/schema/spring"> 

    <!-- refer to a given route to be used --> 
    <routeContextRef ref="myCoolRoutes"/> 

    <!-- we can of course still use routes inside camelContext --> 
    <route id="inside"> 
     <from uri="direct:inside"/> 
     <to uri="mock:inside"/> 
    </route> 
</camelContext> 

所以我想要一個文件,我們稱之爲myCoolException.xml ,而且應該可以將它導入到我的主文件中。因此,這將是這樣的:

<import resource="myCoolException.xml"/> 

<camelContext xmlns="http://camel.apache.org/schema/spring"> 

    <exceptionContextRef ref="myCoolException"/> 
    ... 

</camelContext> 

我的目標是模塊化我的駱駝文件,也不要重複自己,如果我想重用例外條款在不同的上下文。

回答

0

我不確定我們能做到這一點。但是你可以捕獲和處理異常,然後轉發到一個常見的錯誤處理流程。該流程應該可以被所有駱駝環境訪問。

一樣,

onException(Exception.class).handled(true).to("direct-vm:commonErrorHandler") 

你可以有共同的異常處理中定義的邏輯 「直接-VM:commonErrorHandler」 路線。同樣的方法,您可以將多個direct-vm路徑進行邏輯分組,以在一個常見的地方處理您的異常。

+0

嘿@Gnana Guru,謝謝你的建議。這對我來說似乎是一個好主意,所以我會嘗試給你反饋。 – Yannick