今天被告知测试环境,硬盘不够了。发现一个项目一直在打印日志,我勒个去,一看日志原来是rabbitMq一直在循环打印日志。怪事年年有,今年特别多。以前都是好好的,今天就见了鬼。出来问题只能找资料了。

集成方式用的 spring-boot-starter-amqp ,没做其他定制化额外配置,百度了一圈发现别人也遇到过。见https://www.bbsmax.com/A/KE5Qy4y5LG/

无线循环的原因是

如果未启用重试并且侦听器引发异常,则默认情况下将无限期重试传递。您可以通过两种方式修改此行为:将defaultRequeueRejected
 属性设置为false
 ,将尝试进行零次重新传递;或者,抛出一个AmqpRejectAndDontRequeueException
 以指示该消息应被拒绝。这是启用重试并达到最大传送尝试次数时使用的机制。

@RabbitListener管道中有两个转换。
第一个从Spring AMQP消息转换为spring-messaging消息。
当前无法从SimpleMessageConverter更改第一个转换器,该转换器处理String,Serializable,并将其他所有内容作为byte []传递。
第二个转换器将消息有效负载转换为方法参数类型(如果需要)。
使用方法级@RabbitListeners时,处理程序和方法之间存在紧密的绑定。
对于类级别的@RabbitListener,来自第一次转换的消息有效负载用于选择要调用的方法。只有这样,才尝试进行参数转换。
该机制与Java Serializable对象一起正常工作,因为有效负载在选择方法之前已经被转换。
但是,对于JSON,第一次转换返回一个byte [],因此我们找不到匹配的@RabbitHandler。
我们需要一种机制,使得第一个转换器是可设置的,以便有效载荷在管道中足够早地进行转换,以选择适当的处理程序方法。
ContentTypeDelegatingMessageConverter可能是最合适的。
而且,正如AMQP-574中所述,我们需要清楚地记录@RabbitListener的转换需求,尤其是在使用JSON或自定义转换时。

我修改后把@RabbitListener注解从类上加到方法就ok了,以前都是正常的,真是狗血。

org.springframework.amqp.AmqpException: No method found for class java.lang.String相关推荐

  1. Caused by: org.springframework.amqp.AmqpException: No method found for class [B

    前言 spring boot 2.2.13.RELEASE 错误内容:Caused by: org.springframework.amqp.AmqpException: No method foun ...

  2. org.springframework.amqp.AmqpException: No method found for class [B

    版本:spring-rabbit-1.7.1.RELEASE.jar 错误描述: 调用rabbitTemplate.convertAndSend(exchange, routingKey, objec ...

  3. 解决org.springframework.amqp.AmqpException: No method found for class [B

    spring-boot在集成rabbitmq时,如果使用 amqp-client 发送消息,@RabbitListener会一直循环报错 org.springframework.amqp.rabbit ...

  4. Rabbitmq学习笔记008---AmqpException: No method found for class java.lang.String

    JAVA技术交流QQ群:170933152 1.我这里报错是因为,接收的地方,写的是process(byte[] by) 而发送的地方,是send(String message),不统一造成的, 2. ...

  5. Listener method 'public void com.config.mq.MsgReceiver.process(java.lang.String) throw

    Listener method 'public void com.config.mq.MsgReceiver.process(java.lang.String) throw RabbitMQ监听消息时 ...

  6. org.springframework.boot.actuate.endpoint.EndpointId cannot be cast to java.lang.String 异常处理

    转自:https://blog.csdn.net/qq_38906421/article/details/84028240 java.lang.ClassCastException:    org.s ...

  7. java.lang.NullPointerException: Attempt to invoke virtual method ‘boolean java.lang.String.equals(j

    今天切正式环境出现的空指针 记录一下 下面是错误 java.lang.NullPointerException: Attempt to invoke virtual method 'boolean j ...

  8. Cannot resolve method ‘call(java.lang.String, org.apache.flink.table.api.ApiExpression)‘

    intellij提示: Cannot resolve method 'call(java.lang.String, org.apache.flink.table.api.ApiExpression)' ...

  9. Springboot文件上传报错:failed to convert java.lang.String to org.springframework.util.unit.DataSize

    springboot2.1.2版本文件上传报错,我上传的是一个18M的音频,默认的配置应该是超过10M的文件就会报错,所以我将配置修改为: spring:servlet:multipart:enabl ...

  10. springboot启动报错Parameter 0 of method a in com.* required a bean of type 'java.lang.String' that could

    springboot服务启动报错,报错信息如下 *************************** APPLICATION FAILED TO START ******************** ...

最新文章

  1. 吴恩达《优化深度神经网络》精炼笔记(3)-- 超参数调试、Batch正则化和编程框架...
  2. nGrinder性能测试平台搭建(LVS压力测试)
  3. Redis两种客户端:lettuce和Jedis的区别
  4. 6美元进公园随便挖钻石
  5. 神spfa [Noi2014]魔法森林
  6. 如何在jQuery中使用is()函数
  7. 【Git/Github学习笔记】Git的工作流程
  8. 引用内部函数绑定机制,R转义字符,C++引用,别名,模板元,宏,断言,C++多线程,C++智能指针...
  9. 分享一个TEXT文档加密/解密编辑器
  10. adb 的安装与连接手机详解
  11. U-Net模型搭建python实现
  12. 【经典箴言 || 人生感悟 】
  13. 袁腾飞讲述西方古代哲学思想
  14. 原神迷城战线光界篇冰结试炼怎么过
  15. 启动监听时的XDB、XPT和PLSExtProc服务的介绍
  16. UE4 4.27像素流公网布置教程
  17. 《薄冰实用英语语法详解》独家连载之十三:过去分词
  18. win10更改用户账户控制设置方法
  19. 全志XR829 WIFI和BT模块在T7 Android8.1上调试
  20. Python 自己简单地造一个轮子.whl文件

热门文章

  1. 测试大神博客及资料收藏
  2. mpc_local_planner安装及使用
  3. Codeforces-1671 C: Dolce Vita
  4. 基于SSM的毕业生实习管理系统设计与实现开题报告
  5. 如何看Thinkpad笔记本参数
  6. 运用for循环设置轮播图标的高亮效果
  7. 【IEEE出版,多届会议历史,往届均已检索|南京工业大学主办,南京工业大学电气工程与控制科学学院承办|EI核心,Scopus检索】第十届IEEE电气工程与自动化国际学术论坛(IFEEA 2023)
  8. 28岁的程序员从字节跳动退休,他是如何实现财务自由的?
  9. 30. QML仿制思维导图系列01 -- 搭建基本框架
  10. DEVC++多人PVP小游戏