重现步骤:
服务端返回R.data(null);
客户端R
feign.codec.DecodeException: Error while extracting response for type [org.springblade.core.tool.api.R
at feign.InvocationContext.decode(InvocationContext.java:125)
at feign.InvocationContext.proceed(InvocationContext.java:94)
at feign.ResponseHandler.handleResponse(ResponseHandler.java:69)
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:109)
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:53)
at org.springblade.core.cloud.sentinel.BladeSentinelInvocationHandler.invoke(BladeSentinelInvocationHandler.java:113)
若服务端返回R.data(""); 客户端是没有问题的。 不知道是升级到最新版本的问题,还是原来就是这样的。
当前BladeX版本: 4.10.1
应该一直是这样的,null会触发jackson的空值自动序列化,比如不走feign,走controller的话, data(null) 会被序列化为
{"code":200,"success":true,"data":{},"msg":"暂无承载数据"},而 {} 按照string再次反序列化就会报错。
后面我们空了来想想这个怎么自动适配比较好一点。
处理好了么
等下周的5.0版本,或者研究这个commit: https://center.javablade.com/blade/BladeX-Tool/commit/52934b559f9d42bda947eabe04a266982519282f
扫一扫访问 Blade技术社区 移动端