春季AMQP兔子 - 默认情况下没有接收器



我正在构建两个应用程序,一个用于将消息发布到 RabbitMq,另一个用于使用来自 RabbitMq 的消息。

我从春天开始 从兔子mq 开始

问题: 本教程创建一个应用程序,该应用程序将 rabbit 注册为发布者和使用者。

我只是找不到仅作为发布者启动应用程序的方法。 这是我尝试配置绑定的方式:


@Bean
SimpleMessageListenerContainer container(
ConnectionFactory connectionFactory,
MessageListenerAdapter listenerAdapter) {
SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
container.setQueueNames(WeatherRequestQueue.QUEUE_NAME);
container.setMessageListener(listenerAdapter);
return container;
}
@Bean
MessageListenerAdapter listenerAdapter(WeatherQueryListener receiver) {
return null;
}

请注意,我从listenerAdapter()返回 null .这是我尝试不注册消费者。

尝试删除侦听器时出现以下错误:Parameter 1 of method container in my.packag.QueryBinding required a bean of type 'org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter' that could not be found.

只需省略侦听器容器 bean。它只在消费者方面需要。

我正在遵循相同的教程并得到相同的异常。根据我的经验,我可以说加里的评论是正确的。为了解决这个问题,我想说的是,可以使用RabbitTemplate使应用程序充当发布者。在春季的教程中,看看这部分代码。

rabbitTemplate.convertAndSend(MessagingRabbitmqApplication.topicExchangeName,
"foo.bar.zoo",
"Hello from RabbitMQ");

上面的代码将消息"来自 RabbitMQ 的你好"发送到路由密钥"foo.bar.zoo">

相关内容

最新更新