如何在 Camel 3.X.X 中修复每条路线的多个输入?

问题描述

我有一条看起来像这样的路线:

from(URL_A)
  .from(URL_B)
  .to(URL_C)
  .process(...)
  // logging
  .to(URL_D)

这条路线在 Camel 2.X.X 中完美运行,但在 3.7.X 中无效

我收到的错误信息:

每条路线只允许一个输入。无法接受输入:来自[直接:ABCD]

我检查了 migration guide,但我不知道如何迁移这种路由。

你知道如何进一步解决这个问题吗?

解决方法

我认为您可以使用直接组件:https://camel.apache.org/components/3.4.x/direct-component.html

例如:

from(URL_A)
  .to(direct:collector)
from(URL_B)
  .to(direct:collector)
  
from(direct:collector)
  .to(URL_C)
  .process(...)
  // logging
  .to(URL_D)
,

@Stepan Shcherbakov 提出了一个解决方案,下面将对其进行改进:

String [] sources = {URL_A,URL_B}
for (String source : sources) {
  from(source)
    .to(direct:collector)
}

from(direct:collector)
  .to(URL_C)
  .process(...)
  // logging
  .to(URL_D)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...