org.apache.jasper.jasperexception: jsp를 위한 클래스를 컴파일할 수 없습니다

2021. 12. 7. 10:28etc.

반응형

띠용. 프로젝트하면서 웹에서는 화면이 어떤식으로 구현되는지
확인 차 실행했더니 HTTP 상태 500 - 내부 서버 오류 발생.

수업용 프로젝트는 문제 없이 잘 실행되는데
세미 프로젝트는 왜 문제가 발생하는지
네비게이터바에서 수업용과 세미용을 분석

수업용 네비게이터

세미용 네비게이터

헉.. WEB-INF 폴더 안에 classes 폴더가 누락된 것 발견.
팀원이 폴더 만들고 경로까지 잘 지정해서 푸쉬를 했는데도
classes폴더가 풀 되질 않았다

[Project Explorer]창의 프로젝트 우클릭 후 [Build Path] - [Configure Build Path] 클릭

아래에 Default output folder의 경로를
WebContent/WEB-INF/classes로 변경하기 위해
[Browse] 클릭

WEB-INF에 classes폴더가 없기 때문에 새로 생성


여기까지 했는데도 나는 실행이 안됐다😥
그래서 [Livrarise]에서
아파치 톰캣과 JRE 시스템라이브러리를 삭제한 후 다시 추가해줬다.
[Add Library] - [JRE System Library, Server Runtime] - [next] - [finish]
그리고 상단 탭 [project] - [Clean]으로 마무리 후 리스타트


Build path 설정 이유
처음 프로젝트를 생성하면 Library에 Tomcat이 추가되어 있지 않는데
JSP파일을 구동시킬 WAS와 연결해야만 JSP 파일 실행이 가능.
컴퓨터에 설치된 WAS가 Tomcat이 아닐 경우
서버에 설치된 JSP를 컴파일하는 다른 WAS의 라이브러리를 등록.


Default output folder 설정 이유
java파일이 컴파일하면서 class파일로 바뀔 때 저장되는 파일 경로를 설정하는 것.
Java의 대중적인 프레임워크들은 기본적으로 WEB-INF/classes 경로에 class파일을 저장하도록 설정
프레임워크를 다루게 될 상황에서는 지정되어있지 않기 때문에
추후에 프레임워크를 이용할 경우를 대비해서 미리 설정.


실행 순서
tomcat은 lib를 실행시킬 때
classes에 .class 파일을 제일 처음 읽어들이고
그 다음으로는 WEB-INF/lib
그 다음은 tomcat/lib를 읽어들인다.

반응형