[오류해결] Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'Controller' method

Jinju Bae·2022년 2월 20일
0

주말 지나고 돌아와 IntelliJ 를 실행해보니까 다음과 같은 오류가 떴다.

Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'boardController' method

찾아보니 스프링에서 이런 에러가 나면 해당 **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 문제가 발생한다.

profile
진주개발일지 (珍珠開發日誌)

1개의 댓글

comment-user-thumbnail
2022년 6월 17일

감사합니다. 도움에 해결됐습니다. 복붙의 폐해네요 ㅎㅎ

답글 달기