OpenFeign调用MybatisPlus分页接口失败
1. 问题描述
前置条件:
- 使用openFeign+mybatis-plus
- 使用json格式进行数据的传输,即限制web传输的数据格式为 content-type = application/json
问题:
1. 微服务A 通过 OpenFeign 调用微服务B 的分页接口时返回数据为 null
2. 直接调用微服务B的接口,返回数据正常
2. 问题解决过程
1. 首先在微服务B中查看该接口返回的数据,是否正常
结果:
调用微服务B的接口返回的数据正常,说明接口没有问题。
2.对比微服务A调用微服务B接口B接口接收的参数类型是否与微服务A返回接口类型不一致
结果:微服务A接口的接收参数类型与微服务A接口返回接口类型一致
3. 经分析发现,mybatis-plus中的IPage接口虽然实现了Serializable接口,但未实现Json序列化
解决方案:
自定义一个Page类,继承IPage接口的实现类Page,实现Json序列化即可,代码如下:
/** * ClassName Page * * @param <T> * @Description 自定义一个Page类,继承IPage接口的实现类Page,实现Json序列化 * @Author mingtian * @Date 2022/5/16 20:43 * @Version 1.0 */ public class SerializableForFastJsonPage<T> extends Page<T> { /** * 实现json序列化 * * @return */ @Override public String toString() { return JSON.toJSONString(this); } }
结果:
使用SerializableForFastJsonPage类替换IPage类,即可实现json序列化数据进行返回。
4. 注意:在接收方进行反序列化的时候,需要指定具体的接收的数据类型,不可使用泛型,使用泛型会导致接收到的数据为null。
分类:
Mybatis专题
, springboot专题
标签:
mybatisplus
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!