zoukankan      html  css  js  c++  java
  • spring boot整合rabbitmq踩坑 Caused by: org.springframework.amqp.AmqpException: No method found for class

    按照官方的例子代码如下:

    @Component
    @RabbitListener(queues="test_mq_testQueue")
    public class Receiver {


        @RabbitHandler 
        public void process(String msg){
            System.out.println(msg);
        }
    }
    但是运行接收消息时,后台一直循环报错

    Caused by: org.springframework.amqp.AmqpException: No method found for class [B
        at org.springframework.amqp.rabbit.listener.adapter.DelegatingInvocableHandler.getHandlerForPayload(DelegatingInvocableHandler.java:127)
        at org.springframework.amqp.rabbit.listener.adapter.DelegatingInvocableHandler.getMethodNameFor(DelegatingInvocableHandler.java:224)
        at org.springframework.amqp.rabbit.listener.adapter.HandlerAdapter.getMethodAsString(HandlerAdapter.java:61)
        at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:140)
        at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.onMessage(MessagingMessageListenerAdapter.java:106)
        at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:822)
        ... 10 common frames omitted


    后来查资料发现,@RabbitListener(queues=”test_mq_testQueue”)不需要放在类上。直接注释在方法上就好

    @Component
    public class Receiver {
    @RabbitListener(queues="test_mq_testQueue")
        public void process(Message message){
            System.out.println(new String(message.getBody()));
        }
    }

  • 相关阅读:
    上下文管理
    复习1
    描述符
    迭代器斐波那契数列
    迭代器协议
    __call__ 方法
    析构方法__del__
    __module__和class
    1.8命令执行顺序控制与管道(学习过程)
    1.7文件系统操作与磁盘管理(学习过程)
  • 原文地址:https://www.cnblogs.com/linliquan/p/13060727.html
Copyright © 2011-2022 走看看