解决OpenFeign远程调用返回的对象总是null问题
作者:阿小冰
OpenFeign在SpringCloud中用于远程调用,配置简单,在使用Ribbon或Hystrix时,需要注意path参数必须以/开头,否则回参会是null
OpenFeign远程调用返回的对象总是null
OpenFeign在SpringCloud体系中并不少见
远程调用组件嘛,配置也相当简单,添加OpenFeign的依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
在启动类加上开启Feign的注解
@EnableDiscoveryClient
@EnableFeignClients
以上处理完之后
相当于前置条件都已经具备了, 但是有些同学用到了Ribbon或者Hystrix,对应的配置文件该怎么配置这里就不做过多的赘述了,接下来我们看一下远程调用接口类怎么写的
为了保密,value和path的值我置空了,这两个置空的值其实都是读取配置文件,做成了动态配置,但是看似没问题吧,但是我同事再远程调用的时候,接收的回参总是null,然后排查了小一会,发现了一个十分可笑的事情
就是这个path参数,一定要以“/”开头,虽然在请求的时候,OpenFeign会封装成请求类,会自动给你拼接上“/”,但是如果你的path不以“/”开头,远程调用的回参一直都会是null
问题不是大问题,主要是我写的时候有自己的规范,没有省略这个“/”,平常开发也没注意,也是巧了!
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。