У меня есть удаленный сервер RabbitMQ, у которого есть несколько очередей, которые я хочу прослушать. Я попробовал это:
@RabbitListener(queues = "queueName")
public void receive(String message) {
System.out.println(message);
}
Но он попытался создать новую очередь. Результат предсказуем - доступ запрещен.
o.s.a.r.listener.BlockingQueueConsumer : Failed to declare queue: queueName
Я не объявлял никакой очереди другим способом.
Как я могу прослушать существующую очередь на удаленном сервере? Кроме того, есть ли способ проверить, существует ли эта очередь? И я увидел эту строку
@RabbitListener(queues = "#{autoDeleteQueue2.name}")
в учебнике. Что означает #{queueName.name}
? 1013 *
Журналы и начало трассировки стека:
2018-08-30 22:10:21.968 WARN 12124 --- [cTaskExecutor-1] o.s.a.r.listener.BlockingQueueConsumer : Failed to declare queue: queueName
2018-08-30 22:10:21.991 WARN 12124 --- [cTaskExecutor-1] o.s.a.r.listener.BlockingQueueConsumer : Queue declaration failed; retries left=3
org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[queueName]
at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:711) ~[spring-rabbit-2.0.5.RELEASE.jar:2.0.5.RELEASE]
at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:588) ~[spring-rabbit-2.0.5.RELEASE.jar:2.0.5.RELEASE]
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:996) [spring-rabbit-2.0.5.RELEASE.jar:2.0.5.RELEASE]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]