[오류 기록] (Spring) Ambiguous handler methods mapped for HTTP path 오류

ran·2023년 5월 5일

오류기록

목록 보기
3/4

프로젝트 중 아래와 같이 컨트롤러를 작성하고 run을 하였는데
java.lang.IllegalStateException: Ambiguous handler methods mapped for HTTP path
위와 같은 에러가 발생하였다.

@RestController
@RequiredArgsConstructor
public class FileDeleteController {

    private final FileDeleteService fileDeleteService;

    @DeleteMapping("/delete/{fileId}")
    public String deleteAll(@PathVariable Long fileId){
        return fileDeleteService.deleteAll(fileId);
    }

    @DeleteMapping("/delete/{fileVersionId}")
    public String deleteOne(@PathVariable Long fileVersionId){
        return fileDeleteService.deleteOne(fileVersionId);
    }
}

해당 에러는 하나의 Url을 여러개의 컨트로러에 매핑시켰기 때문에 발생하는 것이다.
즉, url로 들어오는 것은 delete/long 이기 때문에 동일한 url을 두개의 컨트롤러에 매핑한 셈이다.

따라서 중복되는 url이 없도록 하나의 컨트롤러에는 하나의 url을 배정해줬다.

@RestController
@RequiredArgsConstructor
public class FileDeleteController {

    private final FileDeleteService fileDeleteService;

    @DeleteMapping("/delete/file/{fileId}")
    public String deleteAll(@PathVariable Long fileId){
        return fileDeleteService.deleteAll(fileId);
    }

    @DeleteMapping("/delete/fileVersion/{fileVersionId}")
    public String deleteOne(@PathVariable Long fileVersionId){
        return fileDeleteService.deleteOne(fileVersionId);
    }
}

위와 같이 바꿔서 해결했다.

profile
Backend Developer

0개의 댓글