Error creating bean with name 'com.cloud.feign.interfaces.xxxFeignClient': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalSt.PathVariable annotation was empty on
环境:
Spring Cloud:Finchley.M8
Spring Boot:2.0.0.RELEASE
报错信息:
Error creating bean with name 'com.cloud.feign.interfaces.xxxFeignClient': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalSt.PathVariable annotation was empty on
Feign接口代码:
@FeignClient(value = "SPRING-CLOUD-WEB-PROVIDER-GROUP2") public interface SongFeignClient { @GetMapping("/call/{id}") public Object getSongInfo(@PathVariable int id); }
报错信息关键点:
PathVariable annotation was empty on
问题就出在接口方法入参@PathVariable注解这里,在Spring Mvc中可以不明确指定该注解对应的参数名称,但在feign中必须指定,否则将保如上异常,修后的正确代码如下:
@FeignClient(value = "SPRING-CLOUD-WEB-PROVIDER-GROUP2") public interface SongFeignClient { @GetMapping("/call/{id}") public Object getSongInfo(@PathVariable("id") int id); }