본문 바로가기
Debugging&Solution/Debugging

[Debugging] 스프링에서 'Missing URI template variable for method parameter of type' 에러 발생할 때

by 코딩의성지 2020. 3. 24.

개발한 api를 postman 을 통해서 테스트하다가

 

Missing URI template variable for method parameter of type string

 

이라는 에러를 마주쳤다.

 

원인을 파악해보면 url로 들어가 있는 userid와 파라미터로 들어가는 id 가 서로 달라서 발생한다.

 

1
2
3
4
    @GetMapping("/{userid}")
    public User getUserByUserId(@PathVariable String id) {
        return userService.getUserByUserId(id);
   }
 

 

이때 해결방법은 2가지가 있다.

 

하나는 아래처럼,  Mapping 과 같은 변수명을 사용해주는 것이다.

1
2
3
4
    @GetMapping("/{userid}")
    public User getUserByUserId(@PathVariable String userid) {
        return userService.getUserByUserId(userid);
   }
 

 

또 하나는 그냥 @pathVariable 에 변수를 할당하는 것이다.

1
2
3
4
    @GetMapping("/{userid}")
    public User getUserByUserId(@PathVariable("userid") String id) {
        return userService.getUserByUserId(id);
   }
 

 

반응형

댓글