Ambiguous handler methods mapped for HTTP Method 에러 해결법

에러 상황

스프링으로 백엔드를 개발하고 포스트맨으로 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을 매핑할때 주의하도록 하자.

반응형

댓글

Designed by JB FACTORY