1
votes

Using Mule 3.4 with the AMQP Transport plugin and RabbitMQ, I am trying to send a message to the default AMQP exchange. The documentation for the exchangeName attribute states "leave blank or omit for the default exchange". However if I (a) omit it, like so:

<amqp:outbound-endpoint routingKey="my.queue" connector-ref="amqpDefaultConnector" />

Then I get the error message:

Element amqp:outbound-endpoint{connector-ref=amqpDefaultConnector, name=.test:outbound-endpoint.17, routingKey=process.task.complete} must have all attributes for one of the sets: [address] [ref] [queueName] [exchangeName] [exchangeName, queueName].

Which seems to indicate that it is not valid to omit the attribute. However, if I (b) provide it but leave it blank, like so:

<amqp:outbound-endpoint exchangeName="" routingKey="my.queue" connector-ref="amqpDefaultConnector" />

then I get the error message:

java.net.URISyntaxException: Expected authority at index 7: amqp://

I believe that the rest of my configuration and setup is correct, as using a named exchange works as expected. Any help would be appreciated.

1

1 Answers

1
votes

To dispatch to the default exchange, you need to pass the queue name in queueName not routingKey:

<amqp:outbound-endpoint exchangeName=""
                        queueName="my.queue"
                        connector-ref="amqpDefaultConnector" />