Очередь RabbitMQ не создается во время выполнения - PullRequest
0 голосов
/ 11 октября 2019

У меня есть простой пример весенней загрузки 1.5.22 + amqp, и проблема в том, что очередь не создается динамически, и она должна.

@Component
class ReceiverComponent {

@RabbitListener(queues = 'spring-boot-queue-2')
public void receive_2(String content) {
    System.out.println("[ReceiveMsg-2] receive msg: " + content);
}

@Component
class SenderComponent {

@Autowired
private AmqpAdmin amqpAdmin;

// The default implementation of this interface is RabbitTemplate, which 
currently has only one implementation.
@Autowired
private AmqpTemplate amqpTemplate;

/**
 * send message
 *
 * @param msgContent
 */
public void send_2(String msgContent) {
    amqpTemplate.convertAndSend(RabbitConfig.SPRING_BOOT_EXCHANGE, 
RabbitConfig.SPRING_BOOT_BIND_KEY, msgContent);
}

@Configuration
class RabbitConfig {

// Queue name
public final static String SPRING_BOOT_QUEUE = "spring-boot-queue-2";
// Switch name
public final static String SPRING_BOOT_EXCHANGE = "spring-boot-exchange- 
2";
// Bound values
public static final String SPRING_BOOT_BIND_KEY = "spring-boot-bind-key- 
2";
}

Ошибка, которую я получаю:

Причина: com.rabbitmq.client.ShutdownSignalException: ошибка канала;Метод протокола: #method (код ответа = 404, текст ответа = NOT_FOUND - нет очереди 'spring-boot-queue-2' в vhost '/', идентификатор класса = 50, идентификатор метода = 10)

Это как-то связано с правами на rabbitmq? Установленная версия 3.7.13 и мои данные о соединении:

spring:
# Configure rabbitMQspring:
rabbitmq:
  host: 127.0.0.1
  port: 5672
  username: guest
  password: guest

1 Ответ

1 голос
/ 11 октября 2019

Можете ли вы поставить:

@Bean
public Queue queue() {
    return new Queue("spring-boot-queue-2'");
}

в вашем классе с пометкой @Configuration?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...