[ https://issues.apache.org/jira/browse/CAMEL-9561?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen updated CAMEL-9561: ------------------------------- Issue Type: Improvement (was: Bug) > RabbitMQ InOut Producer generates operation not permitted on the default > exchange when using dynamic exchange > ------------------------------------------------------------------------------------------------------------- > > Key: CAMEL-9561 > URL: https://issues.apache.org/jira/browse/CAMEL-9561 > Project: Camel > Issue Type: Improvement > Components: camel-rabbitmq > Affects Versions: 2.16.2 > Reporter: Arnaud CHOTARD > Fix For: Future > > > The use case uses a RabbitMQ InOut Producer with a dynamic RabbitMQ exchange > name header : > {code} > from("direct:route") > .setHeader(RabbitMQConstants.EXCHANGE_NAME, constant("exchange")) > .inOut("rabbitmq:///?connectionFactory=...") > {code} > The exchange name is only set on header, not in RabbitMQ endpoint URI. > This generates a RabbitMQ Exception : > {code} > com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: > #method<channel.close>(reply-code=403, reply-text=ACCESS_REFUSED - operation > not permitted on the default exchange, class-id=50, method-id=20) > {code} > The problem is located when doing queueBinding on reply to queue in > org.apache.camel.component.rabbitmq.reply.TemporaryQueueReplyManager > {code} > protected Connection createListenerContainer() throws Exception > {code} > {code} > channel.queueBind(getReplyTo(), endpoint.getExchangeName(), getReplyTo()); > {code} > The header exchange name should be used instead of the endpoint exchange name. -- This message was sent by Atlassian JIRA (v6.3.4#6332)