Use default ("") exchange for reply-to messages According to https://www.rabbitmq.com/direct-reply-to.html "The RPC server will then see a reply-to property with a generated name. It should publish to the default exchange ("") with the routing key set to this value".
This will fix sending correct replies to consumers like this: from("rabbitmq://localhost:5672/testexch?routingKey=test") .transform(body().append(" Pong!")); I'm sending request-reply with: Object resObj = rabbitTemplate.convertSendAndReceive("testexch", "test", "Ping!"); And without this fix applied I'm not getting any reply. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/072f2739 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/072f2739 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/072f2739 Branch: refs/heads/master Commit: 072f273999d57ecae8146b32cbbfa7ac1776a3a5 Parents: 77678ce Author: hauler <rkalashni...@gmail.com> Authored: Thu Mar 16 17:03:40 2017 +0300 Committer: Claus Ibsen <davscl...@apache.org> Committed: Wed Mar 22 21:31:28 2017 +0100 ---------------------------------------------------------------------- .../apache/camel/component/rabbitmq/RabbitMQMessagePublisher.java | 3 +++ 1 file changed, 3 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/072f2739/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQMessagePublisher.java ---------------------------------------------------------------------- diff --git a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQMessagePublisher.java b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQMessagePublisher.java index bde0430..c7fee3c 100644 --- a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQMessagePublisher.java +++ b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQMessagePublisher.java @@ -70,6 +70,9 @@ public class RabbitMQMessagePublisher { LOG.debug("Removing the {} header", RabbitMQEndpoint.SERIALIZE_HEADER); message.getHeaders().remove(RabbitMQEndpoint.SERIALIZE_HEADER); } + if (routingKey.startsWith("amq.rabbitmq.reply-to")) { + message.setHeader(RabbitMQConstants.EXCHANGE_NAME, ""); // use default exchange for reply-to messages + } return message; }