java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not found in class file either.
spring 3.2.1 버전으로 실습을 진행하던 중 위와 같은 에러를 발견하였다.
주로 @RequestParam, @PathVariable 두 가지 애노테이션에서 발생한다고 한다.
// 이 경우 작동함
public String pathVariable(@PathVariable("name") String name) {
...
}
// 작동안함...
public String pathVariable(@PathVariable String name) {
...
}
@RequestParam("username") String username
@PathVariable("userId") String userId
이와 같이 이름을 생략하지 않고 붙여주는 것.
1. IntelliJ IDEA에서 File -> Settings를 연다. (Mac은 IntelliJ IDEA -> Settings)
2. Build, Execution, Deployment → Compiler → Java Compiler로 이동한다.
3. Additional command line parameters라는 항목에 다음을 추가한다.
-parameters
1. IntelliJ IDEA에서 File -> Settings를 연다. (Mac은 IntelliJ IDEA -> Settings)
2. Build, Execution, Deployment → Build Tools → Gradle 로 이동한다.
3. run using에서 Gradle로 바꿀것