我會使用駱駝try catch
塊(如@soilworker建議)。
.doTry()
.to("http://datasource1/data")
.doCatch(UnknownHostException.class)
// Add message 1 here
.end()
//process
.doTry()
.to("http://datasource2/data")
.doCatch(UnknownHostException.class)
// Add message 2 here
.end()
// process
它更冗長,但它很容易理解,並明確地將該消息與異常關聯。如果您希望使to
調用異步,您可以。
您可以使用路由特定onException
但你會需要你的路線分成多個路線:
from("somewhere")
.to("direct:datasource1")
//process
.to("direct:datasource2")
//process
from("direct:datasource1")
.onException(UnknownHostException.class)
// add message 1 here
.end()
.to("http://datasource/data")
from("direct:datasource2")
.onException(UnknownHostException.class)
// add message 2 here
.end()
.to("http://datasource2/data")
我不相信有使用onException
與一個路線的方式,但應用於不同to
來電(除了使用@Alexeys或@Ewouts建議)。如果有的話,很樂意聽到它。
也許你可以在你的路由中使用2個try/catch塊分別處理異常,而不是使用onException塊?有關更多信息,請參閱http://camel.apache.org/try-catch-finally.html。 – soilworker