最近项目集成rocketMq 用的是RocketMQListener、RocketMQPushConsumerLifecycleListener直接讲JSON串转换为实体对象,但是在接收消息的时候一直报JSON转换异常。Cannot construct instance of com.mabanzhang.promotion.activity.pointsign.dto.PurchaseOrderDto
(although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value
各种百度后发现接入方式正确,看源码发现是在MappingJackson2MessageConverter。convertFromInternal方法中出现转换异常
用当前的JSON串在调试窗口执行,发现依然执行报错,就是上面的错误。百度发现是用了lombok 时 对象中嵌入对象没有显示的指定无参的构造函数,加上@NoArgsConstructor 后问题解决。
反思:问题万变不离其中,多看一下源码。