记录一次springboot微服务使用Feign远程调用失败

Spring Boot 使用Feign 远程调用失败

1. 源码

最近在学习Spring Boot,在微服务的调用时使用到了 Feign,话不多说直接上代码

@FeignClient(value = FeServiceList.FE_SERVICE_MANAGE_CMS)
public interface CmsPageClient {@PostMapping("/cms/page/save")CmsPageResult save(@RequestBody CmsPage cmsPage);
}

使用 @FeignClient 注解,配置需要调用的微服务名称,编写接口方法。 项目结构是前后端分离的,统一返回 json。

这是接口返回值对象

@Data
public class CmsPageResult extends ResponseResult {CmsPage cmsPage;public CmsPageResult(ResultCode resultCode, CmsPage cmsPage) {super(resultCode);this.cmsPage = cmsPage;}
}

2. 遇到的问题

org.springframework.http.converter.HttpMessageNotReadableException:
JSON parse error: Cannot construct instance of `com.fe.manage_course.client.CmsPageResult`,
problem: `java.lang.NullPointerException`; nested exception is com.fasterxml.jackson.databind.exc.ValueInstantiationException:
Cannot construct instance of `com.fe.manage_course.client.CmsPageResult`

大概意思Json解析出错,不能为CmsPageResult构造一个实例。

3. 解决方法

因为CmsPageResult没有显示的空参构造,只有有参构造,所以spring不会提供默认的空参构造。

项目中使用的Lombok,所以只需要在类上添加 @NoArgsConstructor

@Data
@NoArgsConstructor
public class CmsPageResult extends ResponseResult {CmsPage cmsPage;public CmsPageResult(ResultCode resultCode, CmsPage cmsPage) {super(resultCode);this.cmsPage = cmsPage;}
}

没有使用Lombok,手动加上空参构造即可。

也算是小小的 Feign坑 吧!!!

springboot微服务使用Feign远程调用失败相关推荐

  1. 微服务之Feign远程调用

    微服务之Feign远程调用 1.微服务之间一般都是业务分离,会创建一个独立的模块来存放接口,方便以后调用,以及防止代码的冗余和降低耦合性 2.导入feign的依赖 <dependency> ...

  2. 微服务8 Feign远程调用

    目录 1.问题 2.使用 2.1导入依赖 2.2添加注解 2.3编写Feign客户端 2.4修改OrderService 2.3访问 java.lang.AbstractMethodError: Re ...

  3. 微服务采用何种远程调用方式?

    无论是微服务还是SOA,都面临着服务间的远程调用.那么服务间的远程调用方式有哪些呢? 常见的远程调用方式有以下几种: RPC:Remote Produce Call远程过程调用,类似的还有RMI.自定 ...

  4. 设置失败重新发起_微服务架构下请求调用失败了怎么办!

    微服务架构相比单体架构,服务的调用从同一台机器内部的本地调用变成了不同机器之间的远程方法调用,但是这个过程也引入了两个不确定的因素: - 调用的执行是在服务提供者一端,即使服务消费者本身是正常的,服务 ...

  5. 【学习日记2023.6.9】之 SpringCloud入门(认识微服务_服务拆分和远程调用RestTemplate_Eureka注册中心_Ribbon负载均衡_Nacos注册中心)

    文章目录 SpringCloud 1. 认识微服务 1.1 单体架构 1.2 分布式架构 1.3 微服务 1.4 SpringCloud 1.5 总结 2. 服务拆分和远程调用 2.1 服务拆分原则 ...

  6. day02 Nacos集群配置、Feign远程调用和统一网关Gateway

    1.Nacos配置管理 Nacos除了可以做注册中心,同样可以做配置管理来使用. 统一配置管理 当微服务部署的实例越来越多,达到数十.数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错.我们需要一 ...

  7. Feign远程调用组件与Gateway网关组件

    文章目录 1. Feign远程调用组件 1.1 Feign简介 1.2 Feign配置应用 1.3 Feign对负载均衡的支持 1.4 Feign对熔断器的支持 1.5 Feign对请求压缩和响应压缩 ...

  8. 使用Zipkin和Sleuth进行SpringBoot微服务跟踪

    在本文中,我们将了解使用Zipkin和Spring cloud sleuth框架的微服务分布式跟踪. 尽管微服务具有自身的挑战,但微服务是出色的架构. 复杂的微服务架构具有与其他微服务的下游和上游依存 ...

  9. Springboot+MySQL+VUE实现的在线教育网站源码+视频教程(Springboot微服务架构)

    下载地址:https://download.csdn.net/download/BSDKT/85347133?spm=1001.2014.3001.5503 项目介绍: Springboot+MySQ ...

  10. SpringCloud使用Nacos服务发现实现远程调用

    本文使用SpringCloud结合Nacos服务发现,Feign远程调用做一个简单的Demo. 1 Nacos 关于Nacos之前写了两篇文章关于SpringBoot对它的使用,感兴趣可以查看一下. ...

最新文章

  1. [problem]快速排序和归并排序
  2. tcp/ip 建立过程
  3. kali linux升级火狐,Kali安装最新firefox卸载旧的firefox
  4. 记一次使用 removeEventListener 移除事件监听失败的经历
  5. CYQ.Data 轻量数据层之路 自定义MDataTable绑定续章(七)
  6. 前端httpd+keepalived加后端heartbeat+nfs+drbd实现httpd服务的高效应用及资源统一管理...
  7. Java中遭遇NaN
  8. (11)VHDL例化system Verilog
  9. 介绍两款实用软件:CCPROXY和SOCKSCAP
  10. PSP ISO游戏运行必备工具:ISO TOOL 1.970 功能一览图文教程
  11. 为开发者们准备的10款超棒的jQuery视频插件
  12. 几点思考-人生哲学,生活方式---ShinePans
  13. matlab max/min/median函数用法以及自定义函数求最大最小值和中位数
  14. 法国在华企业名单,坚决抵制!
  15. 为什么要使用PPTP协议代理ip?
  16. java倒计时器_Java并发系列5--倒计时器CountDownLatch
  17. 金山词霸使用牛津词典取词的笨方法
  18. java集成easyExcel动态生成表头并在浏览器下载excel
  19. 纵横20年,我所经历的数据开放演化史 by 傅一平
  20. Capto2022中文版一款适用Mac屏幕录制编辑软件

热门文章

  1. Spring的事务控制
  2. 迭代回溯的图最大团问题(可得到多组最优解)
  3. 【098】人民币数字转换大写?
  4. 【金猿案例展】某大型股份制银行——指标的统一管理和分析平台
  5. 锁仓怎么解_期货如何锁仓,解锁以及锁仓的好处
  6. 2022年P气瓶充装最新解析及P气瓶充装新版试题
  7. 从天使到A轮融资:创业者要迈过的9大生死关
  8. android 支付宝工具类,Android app第三方支付宝支付接入教程
  9. 【51单片机】按键控制多个舵机(可用于机械臂控制)
  10. 地质地貌卫星影像集锦(一 典型地貌篇)