消费者的代码如下:
1 2 3 4 5 6 7 8 9 10 |
@Component @RabbitListener(queues = "balance") public class Receiver { @RabbitHandler public void process(String hello) { System.out.println("Receiver : " + hello); } } |
运行之后,出现循环抛出异常的情况 (org.springframework.amqp.AmqpException: No method found for class [B),具体如下:
1 2 3 4 5 6 7 8 |
Caused by: org.springframework.amqp.AmqpException: No method found for class [B at org.springframework.amqp.rabbit.listener.adapter.DelegatingInvocableHandler.getHandlerForPayload(DelegatingInvocableHandler.java:127) ~[spring-rabbit-1.7.0.RELEASE.jar:na] at org.springframework.amqp.rabbit.listener.adapter.DelegatingInvocableHandler.getMethodNameFor(DelegatingInvocableHandler.java:224) ~[spring-rabbit-1.7.0.RELEASE.jar:na] at org.springframework.amqp.rabbit.listener.adapter.HandlerAdapter.getMethodAsString(HandlerAdapter.java:61) ~[spring-rabbit-1.7.0.RELEASE.jar:na] at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.invokeHandler(MessagingMessageListenerAdapter.java:140) ~[spring-rabbit-1.7.0.RELEASE.jar:na] at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.onMessage(MessagingMessageListenerAdapter.java:106) ~[spring-rabbit-1.7.0.RELEASE.jar:na] at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:779) ~[spring-rabbit-1.7.0.RELEASE.jar:na] ... 10 common frames omitted |
@RabbitListener可以标注在类上面,需配合 @RabbitHandler 注解一起使用,@RabbitListener 标注在类上面表示当有收到消息的时候,就交给 @RabbitHandler 的方法处理
此处将其改放到方法上,消费者代码修改如下:
1 2 3 4 5 6 7 8 9 |
@Component public class Receiver { @RabbitListener(queues = "balance") public void process(Message message) { System.out.println("Receiver : " + new String(message.getBody())); } } |
修改之后程序便正常运行
-------------本文结束感谢您的阅读-------------
本文标题:SpringBoot整合rabbitmq循环抛出异常 (AmqpException: No method found for class [B) 问题及解决
文章作者:Tylxrex
发布时间:2018年08月14日 - 09:08
最后更新:2018年08月14日 - 10:08
原始链接:https://tylxrex.github.io/springboot-rabbitmq-amqpexception/
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。