Допустим, у меня есть заявленный слушатель:
Listener.java
@RabbitListener(id = "test listener 1")
public String test2(String req) {
return req + " result";
}
Я пытаюсь выставить его через очередь во время выполнения:
ListenerTest.java
Queue declaredQueue = new Queue("new.queue", false);
admin.declareQueue(declaredQueue);
SimpleMessageListenerContainer listener = (SimpleMessageListenerContainer)
registry.getListenerContainer("test listener 1");
listener.addQueues(declaredQueue);
И затем я пытаюсь отправить сообщение о вновь объявленной очереди:
String result = template.convertSendAndReceiveAsType("new.queue", "req", ParameterizedTypeReference.forType(String.class));
Но он просто отключается и возвращает ноль.
Когда я проверяю слушателя в отладчике, я не вижу никаких потребителей, связанных с новой очередью ![enter image description here](https://i.stack.imgur.com/I4R74.png)
Вы можете найти по конфигурации кролика здесь и остальные источники, чтобы проверить это здесь .
Стоит отметить, что эта точная настройка работает в весенней загрузочной версии 2.0.5.RELEASE , так что это может быть ошибкой.Мне нужно найти способ реинициализировать потребителей.