最近在做利用dubbo、spring、mybaits进行开发时遇到一个奇怪的现象,记录下来,希望遇到同样情况的同学能参与讨论。
问题描述:
1.服务端返回一个SimpleDemo对象,此对象有一个Category类型的属性category、若干String、Long等类型的属性和几个枚举类型的属性,其中枚举类型的属性有默认值
2.SimpleDemo的category属性配置了延迟加载
3.当服务端返回List<SimpleDemo>时客户端得到的数据是正常的
4.当服务端返回SimpleDemo对象时,在加载了category属性时客户端得到的对象正常,当没有加载category时客户端得到的对象的属性值为空或默认值
5.通过观察服务端日志发现服务端取到的数据正常
6.通过debug跟踪发现客户端反序列化后得到的对象也正常,NioWorker返回给客户端后属性值丢失
7.dubbo使用默认的hessian2协议
注:对与此问题不相关的部分进行了简化,但和实际情况完全符合

在使用Dubbo、Spring、Mybaits进行开发时,遇到一个问题:服务端返回的SimpleDemo对象,其category属性配置了延迟加载。当返回List<SimpleDemo>时一切正常,但返回单一SimpleDemo对象且未加载category属性时,客户端接收到的对象category属性为空或默认值。通过观察服务端日志和debug跟踪,发现客户端反序列化后得到的对象属性丢失。
7519

被折叠的 条评论
为什么被折叠?



