Hi there, When working with an exchange of type headers, we need to bind to the queues by declaring maps of header key value pairs for each target queue.
There seems to be a RabbitMQ configuration issue/limitation when trying to describe such relationships for binding. I don't know if there is a workaround which is why I extend the question to you (whomever you may be and are still interested). I am trying to declare a headers exchange and bind to a preexisting queue through the endpoint URI. I have set the following parameters: exchangeType=headers durable=false autoDelete=true exclusive=false autoAck=true declare=true arg.exchange.alternate-exchange=alternate-exchange arg.binding.x-match=all arg.binding.goto=1 arg.queue.x-queue-type=classic After running this once, the exchange is declared but the queue that receives the binding is a newly created queue (with a name consisting of a bunch of numbers). I tested again including the following parameter skipQueueDeclare=true The exchange is declared but the binding is skipped (which makes sense and I think is documented). In this particular case (headers exchange) I don't believe that trying to declare this kind of information from a URI would make much sense (or the workaround might add far more complexity than warranted). Afterthought. I don't know if the To Dynamic (toD) EIP element could be used to supply this information somehow. I understand that there are some optimizations built in when using dynamic rabbitmq endpoints but my understanding is far too limited.