2013년 4월 11일 목요일

톰캣 구동 에러


자바를 새로 설치한 후

혹은

자바를 설치 한 후

혹은

자바를 업그레이드 한 후

혹은

자바를 버전업 한 후

뭐 암튼..

기존의 자바를 사용하지 않고 새로운 자바를 깐 다음 톰캣을 구동할때

WARNING: error instantiating 'org.apache.juli.ClassLoaderLogManager' referenced by java.util.logging.manager, class not found
java.lang.ClassNotFoundException: org.apache.juli.ClassLoaderLogManager not found
   <>
WARNING: error instantiating '1catalina.org.apache.juli.FileHandler,' referenced by handlers, class not found
java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler,
   <>
Exception during runtime initialization
java.lang.ExceptionInInitializerError
   <>
Caused by: java.lang.NullPointerException
   <>
위와 같은 에러가 발생하면서 톰캣이 구동이 안된다면 두가지를 확인 해야 한다.

현재 로그인한 계정이 사용중인 java 가 새로 설치한 버전이 맞는지?
>>> java -version 으로 확인하고

현재 JAVA_HOME 환경 변수가 새로 설치한 java 의 디렉토리로 지정이 되어 있는지!
>>> [aadmin@ihd ~]$ set | grep JAVA_HOME
JAVA_HOME=/home/aadmin/java6
아니라면 현재 로그인한 계정의 환경변수에 JAVA_HOME 을 추가 해주고, 설치한 자바의 경로를 지정해 준다.

추가로
자바 처음 배울때 좀 헷갈렸던게.. 자바홈의 디렉토리를 어디로 지정해주냐 였는데..
보통 JDK를 깔면 jdk 어쩌구 하는 폴더가 생긴다.
JAVA_HOME=
위 변수에 대입될 폴더명은
하위에 bin, lib, man, sample 등등의 폴더를 포함하고 있는 그 폴더를 지정해 주면 된다..

윈도우에선 그냥 자바를 깔면 jdk 랑 jre 가 깔렸던거 같은데..
암튼 java, javac, javaw 등의 실행파일을 포함 하고 있는 bin 폴더를 포함하고 있는 부모 폴더를 지정해주면 될거다.