提示:以下是本篇文章正文内容,下面案例可供参考

场景描述:

现有A、B两个服务。
A服务用于授权,授权成功会存储对象到redis中。
B服务通过token去redis中拿到object对象后转换成业务对象是出现该种错误信息。

原因分析:

A服务存储对象到redis中时候会对应有一个全路径类名限定。在通过token进行取对象值并强制转换的时候,
如果接收对象的全路径名称和redis中保存的不一样的话就会转换失败报错。

在这里插入图片描述

解决办法:

`方法一:`
获取并转换接收redis中的对象时将接收对象的全路径与redis中保持一致。
略势:通常生产环境下,不同的服务对应不同的场景模块,自然对应的包名称也会根据当前的业务模块进行设定,
所以此种方法并不友好,所以感觉并不建议采用此种方法。
`方法二:`
从源头上解决,将保存对象的方式,换成其他方式。

补充fastjson包中的常见操作:

// Java对象转换成String类型的JSON字符串
JSONObject.toJSONString(Java对象)
 
// String类型的JSON字符串转换成Java对象
JSONObject.toJavaObject(JSON字符串,Java对象.class)
 
// Json字符串转换成JSONObject对象
JSONObject.parseObject(JSON字符串)
 
// JSON字符串转换成Java对象
JSONObject.parseObject(JSON字符串,Java对象.class)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐