2011-04-12 93 views
0

我試圖從升級駱駝2.0〜2.6如何配置2.6春:無法創建的航線路徑2:

我在的applicationContext-camel.xml文件中有這樣...

<camel:route > 
<camel:from uri="transactionSaleBuffer" /> 
<camel:policy ref="routeTransactionPolicy"/> 
<camel:transacted ref="transactionManagerETL" /> 
<camel:to uri="detailFactProcessor" /> 
</camel:route> 

通過在中間增加的兩行(政策和辦理)我得到的異常...

造成的:org.apache.camel.FailedToCreateRouteException:無法在創建路由路徑2:>>>來自[transactionSaleBuffer] < < < in route:Route [[from [transactionSaleBuffer]] - > [Tr ansacted [ref:trans ...因爲Route route2沒有輸出處理器。您需要將輸出添加到路由,例如(「log:foo」)。

我可以看到這是因爲Camel類的RouteDefinition.java調用了ProcessorDefinitionHelper.hasOutputs(outputs,true)。

這通過在一個對象([成交[參考:transactionManagerETL]])的陣列

這一個對象具有一個兩個孩子

[Transacted[ref:transactionManagerETL]] 
CHILD-[Policy[ref:routeTransactionPolicy], 
CHILD-To[detailFactProcessor] 

政策孩子沒有輸出,所以異常被拋出。

然而,我不知道如何添加一個孩子,我的XML上面匹配架構。

也許我錯過了別的東西?

我的設置的例子匹配... Apache Camel: Book in One Page(請參閱:駱駝1.x的 - JMS樣本)

誰能請幫助我。 謝謝! 傑夫·波特

回答

1

嘗試如下

<camel:route> 
    <camel:from uri="transactionSaleBuffer" /> 
    <camel:transacted ref="transactionManagerETL" /> 
    <camel:policy ref="routeTransactionPolicy"> 
    <camel:to uri="detailFactProcessor" /> 
    </camel:policy> 
</camel:route> 
+0

真棒。我必須有一個高級時刻。我有定義使用事務(transactionManagerETL)的策略,然後我也將事務作爲路由的子項。感謝您的建議! – 2011-04-13 10:18:46