热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

org.springframework.messaging.converter.MessageConversionException:CouldnotreadJSON:Cannotconst

使用rabbitMQ出现下面的异常:rg.springframework.messaging.converter.MessageConversionExceptio

使用rabbitMQ出现下面的异常:

rg.springframework.messaging.converter.MessageConversionException: Could not read JSON: Cannot construct instance of `com.example.mqtest.mq.User` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator)at [Source: (byte[])"{"name":"哈哈"}"; line: 1, column: 2]; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.example.mqtest.mq.User` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator)at [Source: (byte[])"{"name":"哈哈"}"; line: 1, column: 2], failedMessage=GenericMessage [payload=byte[17], headers={amqp_receivedDeliveryMode=PERSISTENT, amqp_receivedExchange=comment, amqp_deliveryTag=1, deliveryAttempt=3, amqp_cOnsumerQueue=comment.comment_like_group111, amqp_redelivered=false, amqp_receivedRoutingKey=comment_like, amqp_timestamp=Fri Mar 27 13:36:57 CST 2020, amqp_messageId=c04aa17c-ae7b-2ca2-1ed1-2d623cc45409, id=3e6f1fc8-00c1-3e93-d6e6-c09c83cf31dc, amqp_cOnsumerTag=amq.ctag-22vW4PCiDJzGNiE5QGjfwQ, sourceData=(Body:'{"name":"哈哈"}' MessageProperties [headers={}, timestamp=Fri Mar 27 13:36:57 CST 2020, messageId=c04aa17c-ae7b-2ca2-1ed1-2d623cc45409, cOntentType=application/json, cOntentLength=0, receivedDeliveryMode=PERSISTENT, priority=0, redelivered=false, receivedExchange=comment, receivedRoutingKey=comment_like, deliveryTag=1, cOnsumerTag=amq.ctag-22vW4PCiDJzGNiE5QGjfwQ, cOnsumerQueue=comment.comment_like_group111]), cOntentType=application/json, timestamp=1585287417722}]at org.springframework.messaging.converter.MappingJackson2MessageConverter.convertFromInternal(MappingJackson2MessageConverter.java:235)at org.springframework.cloud.stream.converter.ApplicationJsonMessageMarshallingConverter.convertFromInternal(ApplicationJsonMessageMarshallingConverter.java:112)at org.springframework.messaging.converter.AbstractMessageConverter.fromMessage(AbstractMessageConverter.java:197)at org.springframework.messaging.converter.CompositeMessageConverter.fromMessage(CompositeMessageConverter.java:70)at org.springframework.cloud.stream.config.SmartPayloadArgumentResolver.resolveArgument(SmartPayloadArgumentResolver.java:115)at org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:117)

在使用springboot stream rabbitmq时候 新建了项目,配置好后发送对象消息到mq

然后报了如上错误,进行代码跟踪了下。发现无法解析User类,因为user类使用的lombok注解,模型如下

import lombok.Data;import java.io.Serializable;@Data
public class User implements Serializable {private String name;public User(String name) {this.name = name;}
}

因为给了有属性的构造函数,没有指定出空的构造,所以mq处理的方法拿到class处理没法拿到对象的句柄地址,也没法进行序列化操作

,解决办法是加了个默认的空构造进去,当然你没有有参构造是不用加空默认的

import lombok.Data;import java.io.Serializable;@Data
public class User implements Serializable {private String name;public User() {}public User(String name) {this.name = name;}
}

重启项目运行,发送与接收都是正常的了

 

 

 

 

 

 

 

 

 

 

 


推荐阅读
  • 本文深入探讨了 MXOTDLL.dll 在 C# 环境中的应用与优化策略。针对近期公司从某生物技术供应商采购的指纹识别设备,该设备提供的 DLL 文件是用 C 语言编写的。为了更好地集成到现有的 C# 系统中,我们对原生的 C 语言 DLL 进行了封装,并利用 C# 的互操作性功能实现了高效调用。此外,文章还详细分析了在实际应用中可能遇到的性能瓶颈,并提出了一系列优化措施,以确保系统的稳定性和高效运行。 ... [详细]
  • Prim算法在处理稠密图时表现出色,尤其适用于边数远多于顶点数的情形。传统实现的时间复杂度为 \(O(n^2)\),但通过引入优先队列进行优化,可以在点数为 \(m\)、边数为 \(n\) 的情况下显著降低时间复杂度,提高算法效率。这种优化方法不仅能够加速最小生成树的构建过程,还能在大规模数据集上保持良好的性能表现。 ... [详细]
  • BZOJ4240 Gym 102082G:贪心算法与树状数组的综合应用
    BZOJ4240 Gym 102082G 题目 "有趣的家庭菜园" 结合了贪心算法和树状数组的应用,旨在解决在有限时间和内存限制下高效处理复杂数据结构的问题。通过巧妙地运用贪心策略和树状数组,该题目能够在 10 秒的时间限制和 256MB 的内存限制内,有效处理大量输入数据,实现高性能的解决方案。提交次数为 756 次,成功解决次数为 349 次,体现了该题目的挑战性和实际应用价值。 ... [详细]
  • 本文作为“实现简易版Spring系列”的第五篇,继前文深入探讨了Spring框架的核心技术之一——控制反转(IoC)之后,将重点转向另一个关键技术——面向切面编程(AOP)。对于使用Spring框架进行开发的开发者来说,AOP是一个不可或缺的概念。了解AOP的背景及其基本原理,对于掌握这一技术至关重要。本文将通过具体示例,详细解析AOP的实现机制,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文提供了 RabbitMQ 3.7 的快速上手指南,详细介绍了环境搭建、生产者和消费者的配置与使用。通过官方教程的指引,读者可以轻松完成初步测试和实践,快速掌握 RabbitMQ 的核心功能和基本操作。 ... [详细]
  • Linux 信号处理全面解析(第六篇)
    本文深入探讨了信号及其来源。信号本质上是对中断机制的软件层面模拟,从原理上看,进程接收到信号与处理器接收到中断请求类似。信号具有异步特性,能够在进程执行过程中随时触发,从而中断当前操作并执行相应的处理程序。文章详细分析了信号的生成、传递和处理机制,并讨论了常见的信号类型及其应用场景。此外,还介绍了如何在 Linux 系统中使用信号进行进程间通信和错误处理,为开发者提供了实用的技术指导。 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • 进程(Process)是指计算机中程序对特定数据集的一次运行活动,是系统资源分配与调度的核心单元,构成了操作系统架构的基础。在早期以进程为中心的计算机体系结构中,进程被视为程序的执行实例,其状态和控制信息通过任务描述符(task_struct)进行管理和维护。本文将深入探讨进程的概念及其关键数据结构task_struct,解析其在操作系统中的作用和实现机制。 ... [详细]
  • 题目描述:小K不幸被LL邪教洗脑,洗脑程度之深使他决定彻底脱离这个邪教。在最终离开前,他计划再进行一次亚瑟王游戏。作为最后一战,他希望这次游戏能够尽善尽美。众所周知,亚瑟王游戏的结果很大程度上取决于运气,但通过合理的策略和算法优化,可以提高获胜的概率。本文将详细解析洛谷P3239 [HNOI2015] 亚瑟王问题,并提供具体的算法实现方法,帮助读者更好地理解和应用相关技术。 ... [详细]
  • 成功实现Asp.Net MVC3网站与MongoDB数据库的高效集成
    我们成功地构建了一个基于Asp.NET MVC3框架的网站,并实现了与MongoDB数据库的高效集成。此次更新不仅完善了基本的创建和显示功能,还全面实现了数据的增删改查操作。在创建功能方面,我们修复了之前代码中的错误,确保每个属性都能正确生成。此外,我们还对数据模型进行了优化,以提高系统的性能和稳定性。 ... [详细]
  • 探讨String参数作为锁对象时,实际锁定的是哪个具体实例? ... [详细]
  • 本文深入探讨了 HTML 中的 `margin` 属性,详细解析了其基本特性和应用场景。文章不仅介绍了 `margin` 的基本概念,还重点讨论了垂直外边距合并现象,并分析了 `margin` 在块级元素与内联元素中的不同表现。通过实例和代码示例,帮助读者全面理解 `margin` 的使用技巧和常见问题。 ... [详细]
  • MongoDB Aggregates.group() 方法详解与编程实例 ... [详细]
  • 优化后的标题:校园互联新方案:10397连接教育未来 ... [详细]
  • POJ 1696: 空间蚂蚁算法优化与分析
    针对 POJ 1696 的空间蚂蚁算法进行了深入的优化与分析。本研究通过改进算法的时间复杂度和空间复杂度,显著提升了算法的效率。实验结果表明,优化后的算法在处理大规模数据时表现优异,能够有效减少计算时间和内存消耗。此外,我们还对算法的收敛性和稳定性进行了详细探讨,为实际应用提供了可靠的理论支持。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有