cannot deserialize from Object value (no delegate- or property-based Creator)

最近研究springstomp协议框架,上到消息订阅、发送时一开始用的普通String,没有任何问题,都可以跑通,后来上DTO数据对象时,遇到了标题上的问题,查了下发现是框架层在调用jackson自动反序列化json为DTO对象时报的错,很久没用java,都忘记了,参考下面链接的说明

https://blog.csdn.net/weixin_39827145/article/details/89314433

意识到jackson反序列化时默认的行为是需要class的无参构造,之后再处理各个属性对应到json key的value,而出问题是的DTO class上用的lombok标记是“@AllArgsConstructor”,只生成了全成员变量参数构造,因此导致了此问题,把接收stomp请求,用于对应@Payload的class换成@NoArgsConstructor(当然,一般还要带上@Getter,用于成员变量的访问)后,问题解决,接收到stomp请求后,成功传递到了controller的对应处理方法中。小问题连带了一个小知识点,记录一下。

博主友情提示:

如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用>>博主专用加密工具v3<<处理后发布,原文只有博主可以看到。