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

时间:2022-08-11 16:44:06

环境:

  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);
}