当前位置: 代码迷 >> 综合 >> Feign远程调用出现异常:PathVariable annotation was empty on param 0
  详细解决方案

Feign远程调用出现异常:PathVariable annotation was empty on param 0

热度:44   发布时间:2023-10-27 04:13:29.0

异常问题如下:在这里插入图片描述
产生此异常的原因是路径参数(PathVariable)有问题,主要需要注意2个地方,
1,接口地址后必须有参数(使用花括号标识):{xxx}
2,feign调用接口中的路径参数注解PathVariable 必须有value指定参数

同理,Feign调用中 @RequestParam注解也需要指定参数,不用feign调用可以省略

错误示例1:
没有带路径参数:/{xxx}

 @GetMapping(value = "/alarm/getAlarmInfo")R<String> getAlarmInfo(@PathVariable("alarmId") String alarmId);

错误示例2:
没有在注解路径变量中指定是哪个参数,feign必须指定,用getAlarmInfo(@PathVariable(“alarmId”) String alarmId); 或 getAlarmInfo(@PathVariable(value=“alarmId”) String alarmId) 指定都OK。

 @GetMapping(value = "/alarm/getAlarmInfo/{alarmId}")R<String> getAlarmInfo(@PathVariable String alarmId);

正确示例:

 @GetMapping(value = "/alarm/getAlarmInfo/{alarmId}")R<String> getAlarmInfo(@PathVariable("alarmId") String alarmId);或@GetMapping(value = "/alarm/getAlarmInfo/{alarmId}")R<String> getAlarmInfo(@PathVariable(value="alarmId") String alarmId);
  相关解决方案