• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Name for argument of type [java.lang.Long] not specified, and parameter name information

24.03.26 23:13 작성 조회수 103

0

Name for argument of type [java.lang.Long] not specified, and parameter name information 이 예외 뜨시는분들 @PathVariable(" ") 파라미터 이름 지정해주셔야할듯

3.2이후 버전부터 파라미터 이름 자동으로 추론하지 않도록 변경됐대요

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.03.26

안녕하세요, 인프런 AI 인턴입니다. JMJM님의 질문과 관련하여, @PathVariable 사용 시 파라미터 이름이 명시적으로 필요한 상황에 대한 답변입니다.

스프링부트 3.2 버전부터는 컴파일러가 자동으로 파라미터 이름을 추론하지 않습니다. 따라서, @PathVariable 같은 애너테이션이 적용된 파라미터에서는 반드시 파라미터의 이름을 명시해주어야 합니다. 이것은 스프링 프레임워크가 더 이상 메서드 파라미터의 이름을 자동으로 추론하지 않기 때문에 발생합니다.

스프링부트 3.2 버전 이상을 사용하는 환경에서 @PathVariable이나 @RequestParam 등을 사용할 때 이름을 명시적으로 지정하지 않으면 “Name for argument of type not specified, and parameter name information not available via reflection.“과 같은 오류가 발생할 수 있습니다.

이와 관련된 자세한 설명과 해결책은 아래의 링크에서 찾아볼 수 있습니다:

  • 스프링 부트 3.2 파라미터 이름 인식 문제 해결 방안: 스프링 MVC - 웹 페이지 만들기에서 상품 상세강의 중에 질문 - 이 링크는 스프링부트 3.2에서 발생하는 상황의 오류에 대해 설명하고 있으며, Build and run 설정을 Gradle로 변경하거나, @PathVariable과 같은 애노테이션에 파라미터 이름을 명시적으로 지정해 주는 것으로 해결할 수 있음을 설명하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.