通过FeignClient调用微服务提供的分页对象IPage报错的解决

作者:hu_xian_ 时间:2022-01-27 20:19:23 

问题描述

通过FeignClient调用微服务提供的分页对象IPage报错

{
"message": "Type definition error: [simple type, class com.baomidou.mybatisplus.core.metadata.IPage]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.baomidou.mybatisplus.core.metadata.IPage` (no Creators, like default construct, exist): abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information\n at [Source: (PushbackInputStream); line: 1, column: 37] (through reference chain: com.test.invoice.vo.ResponseVO[\"data\"])"
}

解决办法

当前mybatis-plus 本不支持 IPage,使用Page即可

生产者controller

通过FeignClient调用微服务提供的分页对象IPage报错的解决

Feign-api接口定义

通过FeignClient调用微服务提供的分页对象IPage报错的解决

消费者,Feign-api 调用

通过FeignClient调用微服务提供的分页对象IPage报错的解决

feign返回IPage无法返回结果集

通过feign调用,服务提供者返回IPage,客户端无法获取到结果;主要原因就是jackson需要默认构造函数序列化;

@PostMapping(value ="/page",consumes = MediaType.APPLICATION_JSON_VALUE)
ResponseModel<IPage<CommentDTO>> loadCommentPage(@RequestBody Comment condition);

Mybatis-plus修改方式

IPage改成Page即可

spring-data 修改方式也是一样的,最简单就是自己实现IPage就可以了,也可以通过SpringMvcContract方式重造结果集

feign的几种可能性

1、接口直接被调用

2、接口直接被调用的同时其他模块也需要这个接口,那么其他模块就需要通过fegin调用

3、不会被直接调用,所有接口通过feign调用

基于以上三点,有如下可能性

1、在使用fegin时候,服务提供者到底应该直接返回ResponseModel(统一返回值)还是只返回结果?

1和3直接返回ResponseModel即可,2如果直接返回ResponseModel那么调用者就需要自己判断code或者直接返回给前段不做任何处理,如果直接返回结果那么直接被调用那个接口就无法统一返回值;建议直接写成俩个方法

来源:https://blog.csdn.net/hu_xian_/article/details/103961149

标签:FeignClient,微服务,分页对象,IPage
0
投稿

猜你喜欢

  • Spring Boot环境属性占位符解析及类型转换详解

    2023-10-21 20:37:35
  • Android长按imageview把图片保存到本地的实例代码

    2021-07-23 14:20:38
  • Java基于余弦方法实现的计算相似度算法示例

    2022-06-29 22:02:13
  • Knife4j 3.0.3 整合SpringBoot 2.6.4的详细过程

    2023-11-25 03:54:34
  •  Java图形化界面编程实现简单计算器

    2021-06-06 17:23:09
  • 用Java实现24点游戏

    2022-07-18 20:56:14
  • 详解Spring关于@Resource注入为null解决办法

    2023-02-13 18:14:13
  • Android Studio实现帧动画

    2023-11-19 01:28:13
  • Android实现屏幕锁定源码详解

    2022-10-08 00:46:38
  • C# 关于LoadLibrary的疑问详解

    2023-07-26 23:14:10
  • Mybatis中Mapper映射文件使用详解

    2023-02-13 17:57:07
  • Android进程间大数据通信LocalSocket详解

    2023-05-21 04:21:23
  • C# CultureInfo类案例详解

    2023-04-20 05:00:45
  • 微服务通过Feign调用进行密码安全认证操作

    2023-07-30 02:43:38
  • 一篇文章弄懂JVM类加载机制过程以及原理

    2022-01-19 10:32:57
  • Springboot+AOP实现返回数据提示语国际化的示例代码

    2021-08-18 19:49:12
  • Flutter加载图片流程MultiFrameImageStreamCompleter解析

    2023-07-19 02:45:55
  • Java IO流之节点流与字符流的相关知识总结

    2021-12-31 06:46:15
  • Java多线程之线程通信生产者消费者模式及等待唤醒机制代码详解

    2022-10-31 11:17:22
  • springboot集成nacos读取nacos配置数据的原理

    2021-08-09 13:38:25
  • asp之家 软件编程 m.aspxhome.com