spring boot整合rabbitmq踩坑

来源:互联网 发布:最全合理网络理财产品 编辑:程序博客网 时间:2024/05/21 15:03

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

@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”)不需要放在类上。直接注释在方法上就好

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

测试,在控制台发送消息
这里写图片描述

后台接收消息
这里写图片描述

原创粉丝点击