【问题标题】:Do i need to add anything else in config file?我需要在配置文件中添加任何其他内容吗?
【发布时间】:2020-10-04 09:28:06
【问题描述】:

这是我的配置类。

@Configuration
public class MessageConfig {

public static final String KEY = "anil_key";
public static final String EXCHANGE = "anil_exchange_one";
public static final String QUEUE = "anil_queue";

@Bean
public Queue queue() {

    return new Queue(QUEUE, false);
}

@Bean
public DirectExchange exchange() {
    return new DirectExchange(EXCHANGE);
}

@Bean
public Binding binding(Queue queue, DirectExchange exchange) {

    return BindingBuilder.bind(queue).to(exchange).with(KEY);

}

@Bean
public MessageConverter converter() {
    return new Jackson2JsonMessageConverter();
}

@Bean
public AmqpTemplate template(ConnectionFactory connectionFactory) {
    final RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
    rabbitTemplate.setMessageConverter(converter());
    return rabbitTemplate;
}

这是我的发布者类

@RestController
@RequestMapping("/order")
public class Publisher {
@Autowired
private AmqpTemplate rabbitTemplate;

@PostMapping("/{restaurentName}")
public String bookOrder(@RequestBody Order order,@PathVariable String restaurentName) {
    
order.setOrderId(UUID.randomUUID().toString());

OrderStatus status = new OrderStatus(order,"progress","successfully received");

rabbitTemplate.convertAndSend(MessageConfig.EXCHANGE, MessageConfig.KEY, status);

return "success";
    
}

我遇到了错误。

2020-10-04 14:28:24.628 错误 17008 --- [127.0.0.1:5672] o.s.a.r.c.CachingConnectionFactory:通道关闭:通道错误;协议方法:#method(reply-code=404, reply-text=NOT_FOUND - 在 vhost '/' 中没有交换 'anil_exchange_one', class-id=60, method-id=40)。

【问题讨论】:

    标签: spring-rabbit


    【解决方案1】:

    您需要 RabbitAdmin @Bean 来声明交换/队列/绑定。

    @Bean
    RabbitAdmin admmin(ConnectionFactory cf) {
        return new Rabbitadmin(cf);
    }
    

    【讨论】:

    • 如何添加RabbitAdmin?
    • 添加 RabbitAdmin 后也面临同样的问题。
    • 打开调试日志以查看连接打开时的管理员活动。
    • 频道关闭:频道错误;协议方法:#method(reply-code=404, reply-text=NOT_FOUND - 在 vhost '/' 中没有交换 'anil_exchange_one', class-id=60, method-id=40)
    • 那么有什么不对劲的地方;将您的完整项目发布到某个地方,以便我查看问题所在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 2014-12-22
    • 2018-07-01
    • 2014-05-15
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    相关资源
    最近更新 更多