@RequestParam 사용시 생략된 애노테이션의 이름을 인식 못하는 에러

이형석·2024년 6월 14일
0

WelCheck 프로젝트 

목록 보기
22/22

문제 상황
카카오 주소 찾기 api를 구현 후, 테스트시 Postman에는 403Forbidden이, 콘솔창에는 다음과 같은 에러메시지가 출력되었다.

java.lang.IllegalArgumentException: Name for argument of type [java.lang.Long] not specified, and parameter name information not available via reflection. Ensure that the compiler uses the '-parameters' flag.

SpringSecurity에 주소를 허용해주었는지 체크해봤지만 문제는 없었다.

문제 원인
에러메시지를 구글링 해보니 컨트롤러 메서드에서 요청을 받을 때 함께 받는 매개변수 이름을 인식하지 못하는 문제라고 한다.
스프링 부트 3.2부터 존재하는 문제라는데 다음과 같은 해결 방법이 있었다.

해결 방법
1번 방법
@RequestParam("query") String query 와 같이 매개변수 이름을 정확하게 써준다.
2번 방법
자바 컴파일러에 -parameters 옵션을 넣어준다.
(이후로 @RequestParam String query 와 같이 애노테이션의 이름을 생략해도 제대로 인식함)

  • Intellij IDE에서 Settings -> Build, Excution, Deployment -> Compiler -> Java Compiler로 이동
  • Additional command line parameters 항목에 다음을 추가
    -parameters
  • out 폴더를 삭제하고 재 실행

참고 자료

profile
금융IT 개발자

0개의 댓글