0

我们正在从骆驼迁移2.x到骆驼3.x

我正在从这些路由定义格式转换使用 uri 字符串编写的路由

//xml routes
<route>
    <from uri="activemq:queue:inputqueue?disableReplyTo=true" />
    <to uri="direct:loadConfiguration" />
</route>


//java routes
from("direct:loadConfiguration"))
.bean(myBean, "loadAllConfiguration(${body})");

转为以下端点-dsl 格式:

from(activemq("loadConfiguration").disableReplyTo(true))
.to(direct("loadConfiguration"));

from(direct("loadConfiguration"))
.bean(myBean, "loadAllConfiguration(${body})");

问题是,URI 格式像这样注册路由:

org.apache.camel.impl.engine.AbstractCamelContext - Route: route4 started and consuming from: activemq://queue:inputqueue?disableReplyTo=true
org.apache.camel.impl.engine.AbstractCamelContext - Route: route5 started and consuming from: direct://loadConfiguration

但是新的camel dsl格式会像这样注册路由(没有//):

org.apache.camel.impl.engine.AbstractCamelContext - Route: route4 started and consuming from: activemq:queue:inputqueue?disableReplyTo=true
org.apache.camel.impl.engine.AbstractCamelContext - Route: route5 started and consuming from: direct:loadConfiguration

问题是使用附加到组件的双斜杠注册的路由(URI 行为)与没有双斜杠注册的路由不匹配(​​新的端点-dsl 行为)。

而且我必须将所有路由转换为使用 URI 或端点 dsl。否则我会收到错误消息,例如告诉路由没有消费者direct://loadConfiguration......因为from(direct("loadConfiguration"))是使用 dsl 定义的,并且它被注册为direct:loadConfiguration.

是否有一个配置选项可以让骆驼//在使用 URI 时不附加到组件或让骆驼忽略它//

4

0 回答 0