今天在写代码的时候,代码里进行了@FeignClient的调用。在调用过程中,报了PathVariable annotation was empty on param 0.

经检查发现:
使用Feign的时候,如果参数中带有@PathVariable形式的参数,则要用value=""标明对应的参数,否则IllegalStateException异常

如下错误实例:

@RequestMapping(value = "examPage/detail/{id}", method = RequestMethod.POST)
ExamPageImportVO detail(@PathVariable String id);

正确的写法应该如下:

@RequestMapping(value = "examPage/detail/{id}", method = RequestMethod.POST)
ExamPageImportVO detail(@PathVariable(value="id") String id);

同理在使用@RequestParam传递参数的时候,也要使用value属性指定名称,否则也会报错。
正确写法如下所示:

@RequestMapping(value = "examPage/detail", method = RequestMethod.POST)
ExamPageImportVO detail(@RequestParam(value = "id") String id);