今天在项目中遇到一个业务,需要调用其他服务的接口,由于项目采用的分布式结构,因此使用Feign调用的其他服务接口,但是写完启动服务时却报错了:
它的大概意思是说状态异常,第 0 个参数绑定的 value 值为空。也就是说第 0 个参数没有正确的绑定请求的参数映射中。
看到报错信息中的RequestParam,马上就想到了是接口的@RequestParam注解问题
我的@RequestParam 注解没有使用value属性进行说明,因此在Feign中报错了 ,进而会影响到 XttblogService 实例的创建,雪崩效应,导致整个项目无法启动。
查了一下,之所以Springboot 中不指定 value 的用法到了 Feign 这里报错是因为和 Feign 的实现有关。Feign 的底层使用的是 httpclient,在低版本中会产生这个问题,高版本中已经对这个问题修复了。