2017년 1월 20일 금요일

java.lang.NoClassDefFoundError

말그대로 Class가 보이지 않는다는 에러입니다.

1) Linux 서버 내 컴파일이 되지 않는 경우 (컴파일 확인은 /tomcat/work/Catalina/localhost 에서 확인 가능합니다.)
    => tomcat을 내렸다가 올려보세요.
    -> 그래도 똑같은 에러가 난다?
       => 해당 클래스의 .class 파일이 속해있을 jar을 살펴본다.
          -> 없으면 다운 받고 tomcat을 재시작해주세요.
              (org/apache...과 같은 jar 파일은 wget을 이용해서 서버 내에서 바로 다운이 가능합니다.)
                                                  
2) Eclipse에서 실행할 때 jar 파일 등 모두 제대로 있는 것을 확인한 뒤, tomcat 재시작해도 안 될 때
    -> Class가 존재하는데 이클립스에서 인식되지 않아 에러가 발생하는 경우가 있습니다.
    ....우선 해당 클래스가 속한 프로젝트에서 source clean up을 해보시길 바랍니다. 저는 왠만한 문제는 이렇게 해결이 되더라고요.
       => 프로젝트를 선택하여 Alt+Shift+S 한 뒤, clean up 선택

* wget 사용법
   1. wget http://archive.apache/org/dist/commons/....tar.gz 
     -> 해당 파일의 속성을 클릭하여 보면 경로가 있습니다. : 파일 다운로드
   2. tar zvxf 파일명 : 파일 압축풀기
   3. mv 해당 폴더 안의 jar ../WEB-INF/lib : 파일 jar 인식 폴더로 이동
   4. rm -rf 해당 폴더, ...tar.gz 파일 : jar외의 다운로드 받은 나머지 삭제

댓글 없음:

댓글 쓰기