관리 메뉴

IT.FARMER

Feign Client with Spring Boot: RequestParam.value() was empty on parameter 0 본문

Spring/Spring Cloud

Feign Client with Spring Boot: RequestParam.value() was empty on parameter 0

아이티.파머 2022. 11. 2. 13:30
반응형

 

OpenFeign을 사용중에 다음과 같은 오류가 발생했다. 
Feign Client with Spring Boot: RequestParam.value() was empty on parameter 0
신기하게도 인텔리제이에서 구동할때는 오류가 없다가, VS Code tool 에서 구동하니 오류가 발생했다.   
@RequestParam을 사용할때 name="" 매개변수이름을 명확히 정의해 주어야 한다고한다.

이유는 Spring MVC 와 Spring cloud feign은  모두 동일한 ParameterNameDiscoverer 를 사용하여 DefaultParameterNameDiscoverer 매개변수 이름을 찾는다고 한다. 

첫째 StadardReflectionParameterNameDiscoverer. 리플렉션을 사용하여 변수 이름을 찾는다. 
둘째,  첫번째에서 실패하면 LocalVariableTableParameterNameDiscoverer. ASM 라이브러리가 있는 클래스 파일의 디버깅 정보에서 변수이름을 찾는다.

 Feign uses above annotations (like @RequestParam) on methods of Java interfaces. But, we use these on methods of Java classes when using Spring MVC.

Spring MVC와 Feign의 차이점은 여기서 발생된다. 고하며 설명하고 있는데 이해는 잘못하겠다. 어째뜬 -parameter를 사용하여 컴파일 하느냐 않아느냐에 따라 성공 혹은 실패할수 있다고 한다.  자세한 이야기는 참고 URL로 확인 할것!

예시 )

  APIResponse findOne(
    @RequestParam(required = false, name = "productId") String productId
  );

 

참고

https://stackoverflow.com/questions/44313482/feign-client-with-spring-boot-requestparam-value-was-empty-on-parameter-0

 

Feign Client with Spring Boot: RequestParam.value() was empty on parameter 0

I created a simple Feign Client with Spring Boot like this: @FeignClient("spring-cloud-eureka-client") public interface GreetingClient { @RequestMapping("/greeting") String greeting(@

stackoverflow.com

 

반응형

'Spring > Spring Cloud' 카테고리의 다른 글

spring open feign retry (circuit breaker)  (0) 2022.01.14
open feign error decoder custom  (0) 2022.01.14
spring open feign 예제  (0) 2022.01.14
open feign log 설정  (0) 2022.01.14
Spring Open Feign  (0) 2022.01.14