There was an unexpected error (type=Not Found, status=404).
JSP file [/WEB-INF/main.jsp] not found
팀 프로젝트를 진행하던 중, 모든 팀원에게서 .jsp 파일을 찾을 수 없다는 404 오류가 발생했다. build.gradle과 application.properties를 아무리 확인해도 문제가 해결되지 않았으며, 디렉토리 이름의 오타 여부와 Controller에서의 경로 설정 또한 점검해 보았지만 원인을 찾을 수 없었다.
위와 같은 오류를 겪었다면 아래 사항을 우선적으로 확인하기를 권장한다
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'jakarta.servlet:jakarta.servlet-api'
implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api'
implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl'
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
@Controller
public class MainController {
@GetMapping("/")
public String main() {
return "main/main"; // properties에서 views폴더까지 설정
}
}
해결 과정 중, 새로운 프로젝트를 생성하며 문제의 원인을 발견했다. 프로젝트 생성 시 의존성에 Spring Security와 OAuth2 Client를 추가한 것이 원인이였다.
이 두 의존성을 추가하면 메인 페이지 이전에 로그인 화면으로 리다이렉션되는 기본 동작이 추가된다. build.gradle에서 이 의존성들을 삭제한 상태로 개발을 진행하려다 보니 경로에서 문제가 발생한 것으로 보였다.
새로운 프로젝트를 생성하면서 해당 의존성을 배제한 상태로 설정한 결과, 더 이상 오류는 발생하지 않았다. 이와 같은 문제를 겪었다면 의존성 추가 여부와 경로 설정을 점검하는 것이 우선이다.
위 오류를 해결하고 새로운 프로젝트를 생성 후 개발을 시작하려는 찰나 또 같은 jsp루트와 파일을 또다시 찾지 못하는 오류가 발생했다. intelliJ에서 실행하면서 생기는 오류같았다.(차라리 console에서 오류의 원인이라도 찾을 수 있으면...ㅜㅜ) 구글링으로 해결법을 찾았다!!
참고한 블로그 https://milenote.tistory.com/176
intelliJ 상단 오른쪽에서 아래화살표를 누르고 Edit Configurations를 클릭해준다.

Spring Boot 아래에서 프로젝트명Application을 눌러준다.
여기서 Working directory에 $MODULE_WORKING_DIR$을 넣어주고 OK를 클릭하면 끝이다.

⚠️ 만약 Working directory를 찾을 수 없으면 Modify options에서 찾을 수 있다.
