에러 해결

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

연구소장 J 2024. 3. 19. 21:15

에러 상황

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

반응형