This application has no explicit mapping for /error, so you are seeing this as a fallback. Fri Aug 21 20:56:07 CST 2020 There was an unexpected error (type=Internal Server Error, status=500). org.springframework.web.util.NestedServletException: Request processing failed; nested exception is feign.FeignException: status 405 reading MClassServiecApi#selectClassByexamId(Integer); content: {"timestamp":1598014567043,"status":405,"error":"Method Not Allowed","exception":"org.springframework.web.HttpRequestMethodNotSupportedException","message":"Request method 'POST' not supported","path":"/class/getClass"}
FeignClient定义
@FeignClient(value = "kaoJinBang-examination-setting-provider") public interface MClassServiecApi { @RequestMapping(value = "/class/getClass",method = RequestMethod.GET) public Map<String,Object> selectClassByexamId(Integer examId); }
明明定义的是GET请求,结果在发起service to service call时,被转换成了POST请求。原因是OpenFeign在构造请求时需要足够多的@RequestMapping/@RequestParam/@PathVariable/@RequestHeader等来构造http请求。通过阅读自己定义的FeignClient可以发现,GET请求中的参数定义缺少注解@RequestParam报错。 将参数examId明确定义为@RequestParam(“examId”)