RabbitMQ通道错误在vhost '/'中找不到名为'examplename'的交换

lndjwyie  于 2022-11-29  发布在  RabbitMQ
关注(0)|答案(1)|浏览(264)

我和一些同学在做一个学校项目,我们需要使用rabbitmq在微服务之间传递消息。我和我的同学有相同的代码(最新的都是从我们建立的github repo中提取的),他没有错误,我一直得到这个错误Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no exchange 'StudyPlannerAndMonitor_event_bus' in vhost '/', class-id=60, method-id=40)(这是在java/springboot中)
然而,如果我在rabbitmq中查找这个eventbus存在,它有一个队列,所有东西看起来都和我的同学完全一样,但它一直给我这个bug。我已经在看其他人有同样的问题,并尝试这些修复,但他们似乎没有工作,也似乎很奇怪,如果这是一个代码问题,它不会为我工作,但它确实为其他人工作。

这是将在队列上发布消息的代码

rabbitTemplate.convertAndSend("StudyPlannerAndMonitor_event_bus","ScheduleIntegrationEvent",jsonObject.getBytes());

我已经考虑过将缓存连接设置为"connection"或"channel",这两种设置都不会改变错误或结果。
有没有人有任何线索是什么原因导致这个错误知道它的工程另一个队友在我的项目。
感谢您抽出宝贵时间

x8goxv8g

x8goxv8g1#

我也遇到过类似的问题
为了解决这个问题,我在本地重新创建了Exchange。我使用Spring,所以在我的情况下,它就像:

@Bean
public FanoutExchange fanoutExchange() {
    return new FanoutExchange("exchange-name");
}

我运行了一次,错误消失了
我在第二次发布之前删除了此代码,一切正常
我知道现在很晚了,但也许对某人会有帮助

相关问题