vscode에서 maven project 로 생성을 한 후 작업을 수행하면 java파일이 컴파일 된 class파일들은 target/classes 경로에 저장이 된다.
그런데 tomcat이 실행될 때 읽는 클래스파일 위치는 webapp/WEB-INF/classes를 읽기 때문에, 여기에 class파일이 없으면 class 파일이 없다고 인식하지 못하는 문제때문에 골칫거리였다.
처음엔 이 경로가 달라서 문제인 걸 모르고 분명 pom.xml에 dependency들도 잘 추가를 했고 자바파일에서 임포트오류도 안뜨고 잘 인식하는데 정작 class파일이 없다고 자꾸 오류가 뜨는지를 몰라서 한참을 헤맴...원인 알고나서 처음엔 톰캣이 읽는 클래스파일 경로를 바꿔보려고 구글링해서 이것저것 시도를 해봤는데 다실패하고 적용이 안됐다... ClassNotFoundException만 며칠을 봄ㅠ
그래서 maven project 자체의 컴파일된 클래스파일이 저장되는 경로 자체를 바꿔보기로 했다. 방법은 아래 코드와 같다.
먼저 .classpath파일을 열고 맨 위의 classpathentry에서 output부분을 target/classes에서 output="src/main/webapp/WEB-INF/classes"로 변경하면 해결!
이렇게 변경하고 재실행하면 컴파일된 자바 클래스파일들이 target/classes가 아닌 webapp/WEB-INF/classes 폴더를 생성해서 여기에 차곡차곡 저장되는 것을 볼 수 있다. 그리고 tomcat에 올려서 프로젝트를 실행해도 문제없이 클래스파일들 잘 읽어들이는 것까지 확인!
[ 참고 ] .classpath파일이 내 작업영역에 안보이는 경우에는 이 글 참고
'에러해결' 카테고리의 다른 글
[ubuntu] 우분투 xrdp 원격접속하면 검은화면만 뜨는 문제 (0) | 2022.11.22 |
---|---|
[ubuntu] userdel: user xx is currently used by ... 에러 (0) | 2022.11.22 |
[classic asp] 한글 깨짐 현상 해결 (0) | 2022.04.23 |
vscode에서 .classpath파일 생성 안되는 에러 해결 (0) | 2022.04.17 |