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()));
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM