我正在尝试从 Camel 2.0 升级到 2.6
我的 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:无法在以下位置创建路由 route2:>>> From[transactionSaleBuffer] <<< 在路由中:Route[[From[transactionSaleBuffer]] -> [Tr ansacted[ref:trans.. . 因为 Route route2 没有输出处理器。您需要向路由添加输出,例如 to("log:foo")。
我可以看到这是因为 Camel 类 RouteDefinition.java 调用了 ProcessorDefinitionHelper.hasOutputs(outputs, true)。
这会传入一个对象的数组 ([Transacted[ref:transactionManagerETL]])
这一个对象有一个两个孩子
[Transacted[ref:transactionManagerETL]]
CHILD-[Policy[ref:routeTransactionPolicy],
CHILD-To[detailFactProcessor]
Policy 子节点没有输出,因此抛出异常。
然而我不知道如何添加一个孩子,我上面的 XML 与架构匹配。
也许我错过了其他东西?
我的设置与示例匹配... Apache Camel:在一页中预订(请参阅部分:Camel 1.x - JMS 示例)
谁能帮帮我。谢谢!杰夫·波特