발생일: 2009.05.26 문제: 웹어플리케이션 백그라운드에서 정기적으로 컨텍스트의 정보를 가져와 DB에 업데이트하는 Daemon Thread가 돌고 있다. (어플리케이션의 백그라운드에서 작동하는 Daemon Thread 참조) 헌데, 로컬에서 작업 중 동적으로 컴파일 하게 되면, Daemon Thread에서 호출하는 매니저 클래스가 없다며 NoClassDefFoundError 가 발생한다. classpath가 잘못된 건 아니고, 또한 분명히 class는 정의되어 있는데 말이다. 해결책: 클래스 로더가 해당 클래스를 로딩할 때에 class 파일을 찾을 수 없다는 예외다. 보통은 클래스 패스가 제대로 정의되어 있지 않을 때 발생한다. (자바서비스넷의 ClassNotFoundException 과 NoCla..
발생일: 2009.04.16 문제: 어플리케이션의 뒷단에서 작동하는 Daemon Thread를 생성하려고 한다. 어플리케이션이 로드되면 스레드가 일정 시간동안 작동하며, 스레드는 중복되어 작동되지 않도록 한다. 해결책: 1. 데몬 스레드의 경우, 유저 스레드(일반 스레드)와 달리 JVM의 뒷단에서 실행되기 때문에 JVM이 종료되면 함께 종료된다. (데몬 스레드와 유저 스레드의 차이) 일단 데몬 스레드는 아래와 같이 Thead의 setDaemon(true) 메서드를 통해 설정하면 된다. Thread t = new Thread(this); t.setDaemon(true); // 스레드를 데몬으로 설정 2. 어플리케이션의 백그라운드 태스크로 추가하기 위해서는, 일단 데몬 스레드가 포함된 클래스를 컨텍스트의 리..