最近在做利用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协议
注:对与此问题不相关的部分进行了简化,但和实际情况完全符合