我正在从 Camel 2 迁移到 Camel 3,我渴望使用此处描述的端点 DSL,但是我在迁移端点时遇到了问题。
我曾经有一个路由写入 RabbitMQ 队列,如下所示:
.toD("rabbitmq:$vhost?connectionFactory=#customConnectionFactory&queue=$responseQueueName&autoDelete=false&routingKey=$responseQueueName&bridgeEndpoint=true")
我迁移到哪个
.toD(
rabbitmq(vhost)
.connectionFactory(connectionFactory)
.queue(responseQueueName)
.autoDelete(false)
.routingKey(responseQueueName)
.bridgeEndpoint(true)
但是,在创建端点时,Camel还会添加无法设置为端点的hash
参数,从而导致以下异常:
无法解析端点:rabbitmq://MYVHOST?autoDelete=false&bridgeEndpoint=true&hash=753a744c&queue=MYQUEUENAME&routetingKey=MYQUEUENAME,原因是:无法在端点上设置1个参数。检查 uri 参数拼写是否正确,以及它们是否是终结点的属性。未知参数=[{哈希=753a744c}]
我的端点语法是正确的,AFAIK,因为我使用的是在路由的from
子句中以相同方式创建的端点。
事实证明,问题出在用toD
指定的输出端点中,将其切换到常规to
解决了这个问题。