通過FeignClient調(diào)用微服務(wù)提供的分頁對(duì)象IPage報(bào)錯(cuò)的解決
問題描述
通過FeignClient調(diào)用微服務(wù)提供的分頁對(duì)象IPage報(bào)錯(cuò)
{
"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\"])"
}
解決辦法
當(dāng)前mybatis-plus 本不支持 IPage,使用Page即可
生產(chǎn)者controller
Feign-api接口定義
消費(fèi)者,F(xiàn)eign-api 調(diào)用
feign返回IPage無法返回結(jié)果集
通過feign調(diào)用,服務(wù)提供者返回IPage,客戶端無法獲取到結(jié)果;主要原因就是jackson需要默認(rèn)構(gòu)造函數(shù)序列化;
@PostMapping(value ="/page",consumes = MediaType.APPLICATION_JSON_VALUE) ResponseModel<IPage<CommentDTO>> loadCommentPage(@RequestBody Comment condition);
Mybatis-plus修改方式
IPage改成Page即可
spring-data 修改方式也是一樣的,最簡單就是自己實(shí)現(xiàn)IPage就可以了,也可以通過SpringMvcContract方式重造結(jié)果集
feign的幾種可能性
1、接口直接被調(diào)用
2、接口直接被調(diào)用的同時(shí)其他模塊也需要這個(gè)接口,那么其他模塊就需要通過fegin調(diào)用
3、不會(huì)被直接調(diào)用,所有接口通過feign調(diào)用
基于以上三點(diǎn),有如下可能性
1、在使用fegin時(shí)候,服務(wù)提供者到底應(yīng)該直接返回ResponseModel(統(tǒng)一返回值)還是只返回結(jié)果?
1和3直接返回ResponseModel即可,2如果直接返回ResponseModel那么調(diào)用者就需要自己判斷code或者直接返回給前段不做任何處理,如果直接返回結(jié)果那么直接被調(diào)用那個(gè)接口就無法統(tǒng)一返回值;建議直接寫成倆個(gè)方法
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- springcloud-feign調(diào)用報(bào)錯(cuò)問題
- 如何解決使用restTemplate進(jìn)行feign調(diào)用new HttpEntity<>報(bào)錯(cuò)問題
- 解決Spring調(diào)用Feign報(bào)錯(cuò):java.io.IOException:Incomplete output stream問題
- @FeignClient?path屬性路徑前綴帶路徑變量時(shí)報(bào)錯(cuò)的解決
- 使用feign發(fā)送http請(qǐng)求解析報(bào)錯(cuò)的問題
- Springcloud?feign傳日期類型參數(shù)報(bào)錯(cuò)的解決方案
- 解決配置Feign時(shí)報(bào)錯(cuò)PathVariable annotation was empty on param 0.
相關(guān)文章
java利用pdfbox+poi往pdf插入數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于java利用pdfbox+poi如何往pdf插入數(shù)據(jù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02SpringBoot整合Graylog做日志收集實(shí)現(xiàn)過程
這篇文章主要為大家介紹了SpringBoot整合Graylog做日志收集實(shí)現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12Spring Cloud之服務(wù)監(jiān)控turbine的示例
這篇文章主要介紹了Spring Cloud之服務(wù)監(jiān)控turbine的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05JPA @Query時(shí),無法使用limit函數(shù)的問題及解決
這篇文章主要介紹了JPA @Query時(shí),無法使用limit函數(shù)的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03Spring的Eureka續(xù)約(心跳檢測(cè))詳解
這篇文章主要介紹了Spring的Eureka續(xù)約(心跳檢測(cè))詳解,eureka?client每隔一定的時(shí)間,會(huì)給eureka?server發(fā)送心跳,保持心跳,讓eureka?server知道自己還活著,需要的朋友可以參考下2023-11-11