Part 1. 나만의 MVC 프레임 워크 만들기

hyunwoo·2023년 1월 1일
0

Spring (fastcampus)

목록 보기
1/27

환경 설정에서 webapps 폴더가 만들어지지 않는 경우

환경 설정을 미리 하지 않으면 LifecycleException이 발생한다
그렇기에 아래 사진과 같이
다음을 사용하여 빌드 및 실행: IntelliJ IDEA로 바꾼다

그리고
Porject Settings > Modules > 해당 프로젝트 > main을 클릭하고,
그 main 디렉토리에 있는 Paths 설정을 다음과 같이 해주면 됩니다. 이게 중요합니다. main이 아닌, mvc-practive(프로젝트)에 있는 Paths를 설정해두고 실행하면 에러가 발생합니다. 꼭 main 디렉토리를 클릭하시고, 그 안에 있는 Paths의 Output Path를 다음과 같이 변경해주시면 됩니다.


이렇게 하시면 없던 webapps 폴더가 main을 실행하면 자동 생성 됩니다.

그리고
tomcat이 실행되면 webapps 밑에 빌드된 webApplicationServer 파일이 아래와 같이 자동적으로 들어간다.
이처럼 webapps > WEB-INF > classes 밑에 들어가는 것은 직접 변경했기에 들어가는 것이다.
그렇기에 3번째 첨부 사진과 같이 경로를 지정해야한다.
그래서 서버를 실행 했을 때 Complie된 output이 classes 밑으로 들어간 것이다.

tomcat은 루트 디렉토리(webapps) 밑에 WEB-INF 밑에 classes 밑에서 필요한 파일들을 찾게 된다.

그래서 위의 부분에 빌드된 파일이 없으면 tomcat은 해당 파일을 실행 할 수 없다.

안녕하세요. 홍종완입니다.
우선 아래와 같이 시도해보시면 좋을 것 같아요.
우선 '커맨드 + 세미콜론' 단축키를 누르시면 Project Structure 화면이 나오는데요.
여기서 'Output path'를 '프로젝트경로/webapp/WEB-INF/classes' 라고 설정해주시고 다시 실행(빌드)하시면
'프로젝트
경로/webapp/WEB-INF/classes' 경로 밑에 빌드된 클래스 파일이 생기실텐데 여기에 클래스 파일이 있으셔야 실행이 가능합니다.
이유는 embedded 톰캣이 루트 경로(webapp 디렉토리, 우리가 코드로 설정했음) 밑에 있는 WEB-INF/classes(톰캣과 약속된 경로) 밑에서 실행할(빌드된) 클래스 파일을 찾기 때문입니다.

감사합니다.

참조 사이트

0개의 댓글