首页 > 解决方案 > ResolveEndpointFailedException:“有 1 个参数无法在端点上设置。” 使用端点 DSL 创建端点时

问题描述

我正在从 Camel 2 迁移到 Camel 3,我渴望使用此处描述的 Endpoint 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在创建endpoint的时候,还添加了一个hash不能设置到endpoint的参数,导致出现如下异常:

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

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

标签: rabbitmqapache-camel

解决方案


原来问题出在用 指定的输出端点中toD,将其切换为常规to解决了该问题。


推荐阅读