如何配置2.6 spring:无法在以下位置创建路由route2:

时间:2011-04-12 16:24:40

标签: java spring apache-camel

我正在尝试从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示例)

任何人都可以帮助我。 谢谢! 杰夫波特

1 个答案:

答案 0 :(得分:1)

尝试以下

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