HTTP 상태 500 – 내부 서버 오류
타입 예외 보고
메시지 JSP를 위한 클래스를 컴파일할 수 없습니다.:
설명 서버가, 해당 요청을 충족시키지 못하게 하는 예기치 않은 조건을 맞닥뜨렸습니다.
예외
org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.
톰캣서버에서 java파일을 import하여 사용하려고 할 때 계속 Classnotclassnotfoundexception 에러가 발생함.
구글이 시키는대로 빌드패스, 라이브러리체크, 파일경로체크, 이클립스 재설치, 톰캣 재설치
혹시 워크스페이스와 톰캣파일의 디스크 파티션을 구분해두어 발생한 오류인가 싶어 합쳐도 보았고
등등 모든걸 다했는데도 해결되지 않았다..
zetawiki.com/wiki/Usebean_class_attribute_invalid
인터넷 문서들을 열심히 찾아보며 원인을 발견했으니 톰캣이 java파일을 제대로 인식하지 못해서 생긴 오류라고 함.
무한 삽질 끝에 방법을 찾아냈다.
3가지 툴의 버전 일치하게 해주어야 한다.
1. 프로젝트 버전
프로젝트 우클릭 -> Properties -> Project Facets 에서 자바 버전을 적용되어 있는 버전과 맞춰주어야 한다.
나는 15버전으로 되어있던 프로젝트 버전을 라이브러리와 톰캣에서 사용중인 1.8버전으로 바꾸니까 해결됐다.
2. 톰캣 버전
Window-Preference에서 Server-RunTime Environments 진입 후 Add를 눌러 사용하고 싶은 자바버전의 톰켓 서버환경을 만들어주자.
만들었으면 세팅된 버전의 톰캣 라이브러리를 추가해주고
맞는 버전의 톰캣 서버를 구축해주자.
새로운 톰캣 서버를 구축했으면 기존 서버의 포트 번호와 다르게 설정해주는걸 잊지 말자.
기존 톰캣을 수정하려면 Server탭의 톰캣을 더블클릭하여 Open lunch configuration에 접근하여
Classpath의 버전을 수정해줄 수 있다.
3. JRE 라이브러리 버전
한번더 빌드패스에서 라이브러리 버전이 일치하는지 확인해주자.
드디어 실행이 된다.. 감동 ㅠㅠ
이렇게 간단한 에러 때문에 3일동안 삽질을 했다.
언제 강의를 보며 환경설정을 이것저것 건드려보다가 에러가 생겼던것 같다.
그야 그런게 신기하게도 에러를 해결하고 나서 다시 에러가 나는 환경을 만들고 시도해보니까 프로젝트 생성 과정에서
저 경고메시지가 뜨며 생성을 못하게 막아주고 있다.
도대체 왜 저런지는 모르겠다.
서블릿인식, 맵핑오류, 자바파일 인식 등 나를 골치아프게 했던 문제들이 한번에 해결됐다.
왜 내 이클립스는 프로젝트버전과 라이브러리 버전이 달라도 아무 문제 없이 가동됐을까.
3줄요약
1. 프로젝트 버전 체크 (project facets -> java version)
2. 톰캣 버전 체크 (Window -> Preference-Server -> RunTime Environments 에서 맞는 자바버전으로 생성)
3. jre 라이브러리 빌드패스 체크 (Java Build Path -> Libraies -> Add Library로 일치하는 버전으로 생성)
'JAVA > JSP' 카테고리의 다른 글
[JSP] 액션태그 (forward, include, param) (0) | 2021.03.29 |
---|---|
[JSP] JSP 액션태그-useBean (JAVABEAN) (0) | 2021.03.28 |
[JSP] JSP 인자 전송 예제 (0) | 2021.03.24 |
[JSP] 쿠키와 세션에 대해 (0) | 2021.03.24 |
[JSP] POST method 사용시 jsp문서에서 한글 인코딩 방법 (0) | 2021.03.23 |