주말 지나고 돌아와 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 문제가 발생한다.
감사합니다. 도움에 해결됐습니다. 복붙의 폐해네요 ㅎㅎ