에러 상황
스프링으로 백엔드를 개발하고 포스트맨으로 API 테스트를 해보려고 했다.
그런데 스프링에서 ambiguous handler methods mapped for HTTP Method 에러를 뱉었다.
해결법
이건 한 Controller에서 매핑되는 URL이 중복되기 때문에 발생하는 에러다.
따라서 메서드들간 매핑되는 URL이 중복되는게 없는지 확인해야 한다.
특히 내 경우에는 아래와 같은 경우가 발생했다.
@RestController
public class SomeController{
@GetMapping("/v1/{purpose}")
public ResponseDto method1(...){
...
}
@GetMapping("/v1/{money}")
public ResponseDto method2(...){
...
}
}
위와 같이 URL의 PathVariable을 다르게 하면 다른 URL로 인식할 줄 알았지만 그렇지 않다.
따라서 URL이 중복된다고 판단해 에러를 발생시키는 것이다.
메서드에 URL을 매핑할때 주의하도록 하자.
반응형