java浅拷贝BeanUtils.copyProperties引发的RPC异常
💡
原文中文,约1200字,阅读约需3分钟。
📝
内容提要
项目中因使用BeanUtils.copyProperties进行浅拷贝导致接口异常,问题出在反序列化时类转换为Map。解决方案是手动赋值,建议使用MapStruct进行转换,并谨慎使用浅拷贝工具。
🎯
关键要点
- 项目中因使用BeanUtils.copyProperties进行浅拷贝导致接口异常。
- 异常信息为java.lang.ClassCastException: java.util.HashMap cannot be cast to cn.xxx.xxx.xxx.xxx.BatchInfo。
- 排查过程中确认报文格式没有问题,重点关注序列化方式和代码改动逻辑。
- 发现BeanUtils.copyProperties进行浅拷贝导致反序列化时找不到对应类,转换为Map。
- 解决方案是去掉BeanUtils.copyProperties,进行手动赋值。
- 建议使用MapStruct进行转换,谨慎使用浅拷贝工具。
➡️