관리 메뉴

I LOVE EJ

JRun의 ClassNotFoundException의 해결 방법 본문

Os & Server/Jrun

JRun의 ClassNotFoundException의 해결 방법

BeOne 2007. 10. 15. 17:04
JRun 환경에서 Web Application을 개발하여 운영하다 보면 간혹 JSP나 서블릿 수행시 ClassNotFoundException이 발생하는 경우가 있습니다.  이때 JSP 디렉토리(소스 & 클래스)나 서블릿 디렉토리를 보면 해당 클래스가 정상적으로 존재함을 확인할 수 있습니다.  이럴 경우 다시 Recompile 시켜주면 정상적으로 수행됩니다.

이 문제는 JRun의 클래스 Dynamic Reload 기능과와 관련된 부분으로서, 특정 클래스가 변경되면 이를 자동으로 감지하여 JVM상의 메모리에 다시 재적재하는 과정에서 발생합니다.   문제 발생 상황으로는 JRun의 WEB-INF/classes 디렉토리 등이 쉘의 CLASSPATH에 잡혀있는 상태에서 Dynamic Reload 옵션이 활성화 되어 있을 때 입니다.

해결 방법으로는 Dynamic Reload 옵션을 해제시켜주면 되는데, 이 옵션은 본래 개발시에는 편리하긴 하지만, 여러가지 문제(퍼포먼스, 클래스 호환성 등)를 수반하고 있기 때문에 Production 환경에서는 해제시켜 주는 것이 바람직합니다.

또 한가지 방법으로는 쉘의 CLASSPATH를 잡을 때 JRun의 classes 디렉토리 등을 포함시키지 않는 방법이 있습니다.  이 경우에는 쉘에서 컴파일 작업 등의 수행시 불편을 야기할 소지가 있는데, 해결 방법으로는 .bash_profile등에서 $CLASSPATH 변수 대신 $CLSPATH 등의 변수에 CLASSPATH 설정을 해준 후 컴파일이나 클래스 수행시 다음과 같이 명령을 내리면 됩니다.

javac -classpath $CLSPATH *.java
java -classpath $CLSPATH MyJava

'Os & Server > Jrun' 카테고리의 다른 글

JRun4 에서 classpath 설정과 서버 별 classpath 설정  (0) 2007.10.15
JRun 4.0의 튜닝 관련 옵션  (0) 2007.10.15
JRun에서 JSP 컴파일시 java 파일 생성하기  (0) 2007.10.15
Jrun4.0 설치법  (0) 2007.10.15
JNDI  (0) 2007.10.15