[해결] Caused by: java.lang.IllegalStateException: Ambiguous mapping

728x90

찾아보니 스프링에서 이런 에러가 나면 해당 **Controller.java 파일의 Mapping 에 문제가 발생한 것이라고 한다.

나의 경우 다음과 같이 같은 이름의 GetMapping 이 두 개 들어가 있었다.

    @GetMapping("/upload")
    public String uploadBoardForm() {
        return "/boards/upload";
    }

    @GetMapping("/upload")
    public String uploadBoard(Board board) {
        service.uploadBoard(board);
        return "redirect:/board/main"; // 디렉토리가 아니라 주소라 board 임.
    }

아래 Mapping 은 GetMapping 이 아니라 PostMapping 어노테이션을 했어야 했는데 내가 잘못 입력해서 이런 문제가 발생한 것이다.

따라서 GetMapping 둘 중 하나의 이름을 바꾸거나, 아래 GetMapping 어노테이션을 다른 어노테이션으로 바꿔주면 문제가 해결된다.

결론: 같은 이름으로 같은 어노테이션을 하면 mapping 문제가 발생한다.

728x90