일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- oralce
- 갑근세
- samba
- CSS
- .NET
- Eclipse
- 블로그 조회수
- 즐겨찾기 추가
- HTML
- MySQL
- 블로그 수익화
- Jexcel
- 국민연금
- MSSQL
- CVS
- IIS
- Adobe pdf reader
- 소득세
- 블로그 조회수 늘리기
- 블루수국그림
- 에덴미술
- 블로그 방문자 늘리기
- Administrator
- JavaScript
- PHP
- 인테리어그림
- Jrun
- JSP
- Vista
- flash
- Today
- Total
I LOVE EJ
java.lang.NoClassDefFoundError : javax.servlet.Serv.. 본문
CLASSPATH 에 해당 class 가 잡히지 않은 경우 에는 java.lang.ClassNotFoundException 이 발생하지만,
java.lang.NoClassDefFoundError 의 경우는 해당 Class 가CLASSPATH 에 잡혀 있더라도 해당 Class 가 참조하는 다른 클래스를 찾을수 없을경우에 발생합니다.
따라서 java.lang.NoClassDefFoundError : javax.servlet.ServletRequest 의 의미는 ,
호출한 어떤 class 가 javax.servlet.ServletRequest 를 참조 하는데 , 클래스 로더가 javax.servlet.ServletRequest 를 액세스 할수 없을때 발생 하겠죠.
javax.servlet.ServletRequest 의 경우는 servlet.jar 에 담겨 있습니다.
다음 문서를 참조 하시면 중간에 그림이 있습니다.
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/class-loader-howto.html
이때 servlet.jar 의 경우 그림에서 Common 레벨에 위치 하게 되죠.
클래스로더는 위로는 가지만 밑으로는 가지 않습니다. 그렇다면 아까 에러가 난 그 호출 클래스는 어느 레벨일까요 ?
Common 보다 상위 레벨인 System 이나 Bootstrap 의 레벨이겠죠.
다시 정리 하면 System 이나 Bootstrap 레벨의 어떤 클래스를 호출했는데, 그 클래스가 Common 레벨의 javax.servlet.ServletRequest 에 대한 참조를 가지고 있다면 ?
해당 클래스의 클래스로더는 하위 Common Level 의javax.servlet.ServletRequest 를 가져 올수 없기때문에 위와 같이 java.lang.NoClassDefFoundError : javax.servlet.ServletRequest 메시지를 보게 됩니다.
Bootstap 은 어떻게 설정되는 걸까요 ? 求?JVM 이 물고 올라가는 것들 즉 JAVA_HOME/jre/lib/ext 의 위치에 있는 것이라고 보면 됩니다.
크게 잘못될일이 없겠죠 ?
그렇다면 십중 팔구는 System 레벨이 설정을 해서 그렇게 됩니다.
즉 catalina.bat 을 통해서 설정된 클래스들이 겠죠 . 내부적으로 setclasspath.bat 을 호출합니다.
이때 setclasspath.bat 에서 호출 클래스를 설정하고 그 클래스가 javax.servlet.ServletRequest 에 대한 참조를 가지고 있을경우 문제가 생깁니다.
이전 4.1.12 또는 24 까지만 해도 이 경우 에러가 아니었던걸로 기억하는데 ( 좀 가물 가물 함 ^^;;; ) 최신 버전인 4.1.27 의경우 확실히 체크 하는 군요. ㅡㅡ;;
해결법은 간단 합니다. setclasspath.bat 에 CLASSPATH 로 설정하지 않고 Common 하위 레벨에서 설정 하면 됩니다. 뭐 가장 밑의 Webapp 레벨인 /WEB-INF/classes 도 좋겠지요.
그럼 좋은 하루 되세요 ~
'Com Language > Java' 카테고리의 다른 글
JSP에서 이전 이후 날짜 구하는 함수 (0) | 2007.08.10 |
---|---|
java.util.Calendar Field 설명 (0) | 2007.08.10 |
calendar 이용 달력 (0) | 2007.08.10 |
Calendar() 달력출력하기 (0) | 2007.08.10 |
Calendar 클래스 (0) | 2007.08.10 |