Rabbitmq ResolveEndpointFailedException:“;有1个参数不能';不能设置在端点上。”;使用端点DSL创建端点时

Rabbitmq ResolveEndpointFailedException:“;有1个参数不能';不能设置在端点上。”;使用端点DSL创建端点时,rabbitmq,apache-camel,Rabbitmq,Apache Camel,我正在从Camel 2迁移到Camel 3,我渴望使用所描述的端点DSL,但是在迁移端点时遇到了一个问题 我曾经有一条写入RabbitMQ队列的路由,如下所示: .toD("rabbitmq:$vhost?connectionFactory=#customConnectionFactory&queue=$responseQueueName&autoDelete=false&routingKey=$responseQueueName&bridgeEndpoint=t

我正在从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还添加了一个无法设置到端点的
散列
参数,导致以下异常:

未能解析终结点:rabbitmq://MYVHOST?autoDelete=false&bridgeEndpoint=true&hash=753a744c&queue=MYQUEUENAME&routingKey=MYQUEUENAME 原因:无法在终结点上设置1个参数。如果参数拼写正确并且是端点的属性,请检查uri。未知参数=[{hash=753a744c}]


我的端点语法是正确的,因为我使用的端点与我的路由的
from
子句中创建的端点相同。

结果表明问题出在使用
toD
指定的输出端点上,将其切换为常规的
以解决问题。

看起来像个bug,欢迎您创建Jira问题。作为一种解决方法,您可以使用
.connectionFactory(#customConnectionFactory”)
问题不在于连接工厂本身,而是使用
toD
不接受散列参数。啊,是的,当您引用连接工厂实例时,uri生成器会通过散列占位符生成该实例。感谢我重现了该问题并记录了一个错误: