0

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

谁能帮帮我。谢谢!杰夫·波特

4

1 回答 1

1

尝试如下

<camel:route>
  <camel:from uri="transactionSaleBuffer" />
  <camel:transacted ref="transactionManagerETL" />
  <camel:policy ref="routeTransactionPolicy">
    <camel:to uri="detailFactProcessor" />
  </camel:policy>
</camel:route>
于 2011-04-13T06:46:45.320 回答