首先看feign client代碼:
@FeignClient(name = "SPRING-CLOUD-WEB-PROVIDER-GROUP2", url = "http://localhost:8761/") public interface SongFeignClientWithUrl { /*@GetMapping("/call/{id}") public Object getSongInfo(@PathVariable("id") int id);*/ @RequestMapping(value = "/eureka/apps/{serviceName}", method = RequestMethod.GET) public Object findServiceInfoFromEurekaByServiceName(@RequestParam(value = "serviceName") String serviceName); }
上面實際是從eureka中查詢service的節點服務信息
如下是controller代碼:
@GetMapping("/{serviceName}") public Object findServiceInfoFromEurekaByServiceName(/*@PathVariable("serviceName")*/ String serviceName) { return songFeignClientWithUrl.findServiceInfoFromEurekaByServiceName(serviceName); }
問題就出在Controller入參String serviceName,注解被注釋或者沒有加@PathVariable注解,導致入參取不到值,feign client拿到的也是null,報的這個錯。。。
當然,如果返回數據太大也會報400