org.springframework.messaging.converter.MessageConversionException:Could not read JSON: Cannot const

Spring整合mqtt原理分析 Spring整合Mqtt原理分析 阅读详情
org.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)
	at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:148)
	at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:116)
	at org.springframework.cloud.stream.binding.StreamListenerMessageHandler.handleRequestMessage(StreamListenerMessageHandler.java:55)
	at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:127)
	at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:177)
	at org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher.java:115)
	at org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:133)
	at org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:106)
	at org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:73)
	at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:453)
	at org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:403)
	at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:187)
	at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:166)
	at org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:47)
	at org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:109)
	at org.springframework.integration.endpoint.MessageProducerSupport.sendMessage(MessageProducerSupport.java:198)
	at org.springframework.integration.amqp.inbound.AmqpInboundChannelAdapter.access$1300(AmqpInboundChannelAdapter.java:61)
	at org.springframework.integration.amqp.inbound.AmqpInboundChannelAdapter$Listener.lambda$onMessage$0(AmqpInboundChannelAdapter.java:239)
	at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:287)
	at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:180)
	at org.springframework.integration.amqp.inbound.AmqpInboundChannelAdapter$Listener.onMessage(AmqpInboundChannelAdapter.java:236)
	at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:1579)
	at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.actualInvokeListener(AbstractMessageListenerContainer.java:1498)
	at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:1486)
	at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:1477)
	at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java:1421)
	at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doReceiveAndExecute(SimpleMessageListenerContainer.java:963)
	at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.receiveAndExecute(SimpleMessageListenerContainer.java:913)
	at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$1600(SimpleMessageListenerContainer.java:81)
	at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.mainLoop(SimpleMessageListenerContainer.java:1284)
	at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1190)
	at java.lang.Thread.run(Thread.java:748)
Caused by: 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]
	at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63)
	at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1429)
	at com.fasterxml.jackson.databind.DeserializationContext.handleMissingInstantiator(DeserializationContext.java:1059)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1297)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:326)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:159)
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4202)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3300)
	at org.springframework.messaging.converter.MappingJackson2MessageConverter.convertFromInternal(MappingJackson2MessageConverter.java:219)
	... 37 more

在使用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;
    }
}

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

其实出现问题我们要多读读异常信息,最好能跟进去看下,因为情况不同,所以光靠搜索出来的答案不一定使用,希望大家能理解异常,跟进源码,静下心来分析一下string

SpringbootKaka批量消费报Listener method could not be invoked with the incoming message 结论:在配置文件中加上spring.kafka.listener.type=batch 。 完整报错信息如下: org.springframework.kafka.listener.ListenerExecutionFailedException: Listener method could not be invoked with the incoming message Endpoint handler details: Method [public void com.kafka.gateway.c 阅读详情

相关推荐

Could not read JSON: Cannot construct instance of‘‘类名““(no Creators, like default construct, exist)

使用redis存对象的时候报错了,报错信息全部的报错信息如下: org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Cannot construct instance of `com.xkcoding.cache.redis.entity.User` (no Creators, like default construct, exist): cannot deserialize fro

2050

rabbitmq消息转换异常

错误日志: 2021-05-10 09:29:49.116 WARN 6308 --- [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#1-1] o.s.a.s.c.Jackson2JsonMessageConverter : Could not convert incoming message with content-type [application/x-java-serialized-object], 'json..

csdn_CZQ的博客 5234

.net core 下的PostgreSQL 异常排查—— Exception while reading from stream (0x80004005)

最近以PostgreSQL为存储介质,实现了分布式缓存的一个组件开发,在经过开发环境的测试后,顺利推送到产品组的手里,经过开发环境的验证后,终于发布到测试环境了,但问题来了,产品组反应频繁出现访问异常,返回的信息大致是:Exception while reading from stream … (0x80004005) ????欢迎点赞 :???? 收藏 ⭐留言 ???? 如有错误敬请指正,赐人玫瑰,手留余香! ????本文作者:由webmote 原创,首发于 【CSDN】 ????作者格言: 生活在

网尘的技术专栏 5796

草鸡RabbitMQ的小坑

今天在做RabbitMQ的时候,遇到了一个问题 Caused by: org.springframework.messaging.converter.MessageConversionException: Cannot convert from [[B] to [com.xxx.xxxx.data.center.entity.EhrOrganInfo] for GenericMessage [payload=byte[190], headers={amqp_receivedDeliveryMode=PE

rigou11的博客 1113

org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple ty

org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple ty。

weixin_48811255的博客 1120

Cannot construct instance of org.springframework.security.core.GrantedAuthority的错误解决

引用: https://blog.csdn.net/weixin_44353507/article/details/113596584 错误描述 com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of org.springframework.security.core.GrantedAuthority (no Creators, like default constructor,

qq_36022463的博客 2307

Could not read JSON: Cannot construct instance of

使用redis取对象的时候报错了,报错信息全部的报错信息如下: org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Cannot construct instance of com.xkcoding.cache.redis.entity.User (no Creators, like default construct, exist): cannot deserialize from O

qq_43619628的博客 3980

解决:org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple

接口调用时,spring 默认使用的 Jackson 工具对返回值进行序列化过程中,当返回值中的对象为一个空的Bean(没有属性或者属性都是null)。

  1105

MQ Cannot convert from [[B] to [] for GenericMessage

MQ消费端转换报错:主要错误信息:Caused by: org.springframework.messaging.converter.MessageConversionException: Cannot convert from [[B] to [com.***.***.***.***] for GenericMessage [payload=byte[12], headers={amqp_re...

weixin_30836759的博客 4277

Could not read JSON: Cannot construct instance of‘‘类名“(no Creators, like default construct, exist)

使用redis作为缓存保存对象的时候出现错误,报错的信息如下: org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Cannot construct instance of `com.example.rediscachetest.entity.User` (no Creators, like default constructor, exist): cannot deserialize

weixin_43852091的博客 5552

activemq监听消息的时候报错org.springframework.jms.support.converter.MessageConversionException

activemq配置文件如下: @Configuration public class JmsConfig { @Bean public ConnectionFactory connectionFactory(){ ConnectionFactory cf = new ActiveMQConnectionFactory("tcp://localhost:616...

weixin_40888910的博客 7098

记一次bug 误导入com.sun.org.apache.xpath.internal.operations.String 引起的

在学习rabbit时,打印生产者导入的信息时,报错:   Caused by: org.springframework.messaging.converter.MessageConversionException: Cannot convert from [java.lang.String] to [com.sun.org.apache.xpath.internal.operations.St...

RUIMENG061511332的博客 7619

org.springframework.http.converter.HttpMessageNotWritableException...解决方法

集成Spring Security权限框架后出现无法写入JSON的问题解决,报错内容为:Resolved [org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: A granted authority textual representation is required; nested exception ......

世纪末的架构师的博客 3万+

kafka Cannot convert from [java.lang.String] to [xxx] for GenericMessag

Kafka Consumer需要将从Kafka Broker接收到的消息反序列化为Java对象,而。属性设置为正确的反序列化器类。例如,如果要将消息反序列化为JSON格式的Java对象,则可以使用。属性用于指定反序列化器的类名。如果使用了第三方反序列化器,也需要确保该反序列化器实现了该接口。该异常表明,Kafka Consumer尝试将一个字符串类型的消息转换为。如果反序列化的Java对象不在该包下,则会抛出。将消息反序列化为JSON格式的Java对象,并将。类型的Java对象,但是没有正确的反序列化器。

大事龙 2790

Spring整合JMS(三)——MessageConverter介绍

消息转换器MessageConverter       MessageConverter的作用主要有两方面,一方面它可以把我们的非标准化Message对象转换成我们的目标Message对象,这主要是用在发送消息的时候;另一方面它又可以把我们的Message对象转换成对应的目标对象,这主要是用在接收消息的时候。     下面我们就拿发送一个对象消息来举例,假设我们有这样一个需求:我们平

1712

spring+mq常见错误

1、org.springframework.jms.support.converter.MessageConversionException: Cannot convert object of type [] to JMS message Request processing failed; nested exception is org.springframework.jms.support.c...

zhouchenxuan的博客 1953

Feature ‘alsa‘ was enabled, but the pre-condition ‘config.unix && !config.qnx && libs.alsa‘ failed解决

这个问题主要是Qt多媒体插件中缺少了ALSA音频库,所以我们需要自行先编译ALSA 在执行./configure的时候,配置项中ALSA为no Qt Multimedia: ALSA ................................... no GStreamer 1.0 .......................... no GStreamer 0.10 ......................... no Video for Linux .............

有问题或资源连接有缺失的可以私信公众号新潮看世界获取 2558

IEC TS 63337 2024.pdf

IEC TS 63337 2024.pdf

上一篇: JAVA 微信小程序AES解密数据 demo
下一篇: 业务消息中心系统设计与实现(一)
soulbboy
博客等级 码龄11年 30粉丝 25原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

soulbboy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值