我正在尝试从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:&gt;&gt;&gt;来自[transactionSaleBuffer]&lt;&lt;&lt;在路线:路线[[从[transactionSaleBuffer]] - &gt; [翻译 ansacted [ref:trans ...因为Route route2没有输出处理器。您需要向路径添加输出,例如to(“log:foo”)。
我可以看到这是因为Camel类RouteDefinition.java调用了ProcessorDefinitionHelper.hasOutputs(outputs,true)。
传入一个Object的数组([Transacted [ref:transactionManagerETL]])
这一个对象有两个孩子
[Transacted[ref:transactionManagerETL]]
CHILD-[Policy[ref:routeTransactionPolicy],
CHILD-To[detailFactProcessor]
Policy子节点没有输出,因此抛出了异常。
但我不知道如何添加一个孩子,我上面的XML与架构匹配。
也许我错过了别的什么?
我的设置符合示例... Apache Camel: Book in One Page(参见章节:Camel 1.x - JMS示例)
任何人都可以帮助我。 谢谢! 杰夫波特
答案 0 :(得分:1)
尝试以下
<camel:route>
<camel:from uri="transactionSaleBuffer" />
<camel:transacted ref="transactionManagerETL" />
<camel:policy ref="routeTransactionPolicy">
<camel:to uri="detailFactProcessor" />
</camel:policy>
</camel:route>