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/06cbd986 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/06cbd986 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/06cbd986 Branch: refs/heads/camel-2.18.x Commit: 06cbd98655424af56b3e123bf7b0011014b7f570 Parents: 82dec08 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:32:41 2017 +0100 ---------------------------------------------------------------------- .../apache/camel/component/rabbitmq/RabbitMQMessagePublisher.java | 3 +++ 1 file changed, 3 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/06cbd986/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; }