将Mule 3.4与AMQP Transport插件和RabbitMQ一起使用,我正在尝试向默认的AMQP交换发送消息。 exchangeName属性的文档说明“保留空白或省略默认交换”。但是如果我(a)省略它,就像这样:
<amqp:outbound-endpoint routingKey="my.queue" connector-ref="amqpDefaultConnector" />
然后我收到错误消息:
元素amqp:outbound-endpoint {connector-ref = amqpDefaultConnector, name = .test:outbound-endpoint.17,routingKey = process.task.complete} 必须拥有其中一个集的所有属性:[address] [ref] [queueName] [exchangeName] [exchangeName,queueName]。
这似乎表明省略该属性是无效的。但是,如果我(b)提供它,但留空,如下:
<amqp:outbound-endpoint exchangeName="" routingKey="my.queue" connector-ref="amqpDefaultConnector" />
然后我收到错误消息:
java.net.URISyntaxException:索引7处的预期权限:amqp://
我相信其余的配置和设置都是正确的,因为使用命名交换可以按预期工作。任何帮助将不胜感激。
答案 0 :(得分:1)
要调度到默认交换,您需要在queueName
而不是routingKey
中传递队列名称:
<amqp:outbound-endpoint exchangeName=""
queueName="my.queue"
connector-ref="amqpDefaultConnector" />