java.lang.ClassFormatError: Truncated class file
* 개요
웹앱 구동 중
java.lang.ClassFormatError: Truncated class file
오류 발생
해당 앱 구동하는 리눅스 에서는
sda5 : write failed, user block limit reached
오류 발생
* 환경
웹 호스팅
Linux
tomcat 6.0.0.29
java 1.6.X
* 원인 1 - 하드 용량 문제
위 오류는 class 파일에 오류 있을때 발생.
- 나의 경우 웹 호스팅 에서 제공하는 용량을 다 써서 war 이 완벽하게 압축 해제 되지 않음.
이런 경우FileNotFoundException 발생하기도 함.
linux> quota
명령으로 용량 한계 확인 가능.
(또는 웹 호스팅 서비스 업체에서 제공하는 조회기능 이용)
웹 호스팅 환경에서 df 명령으로는 불가
- 해결
더 비싼 서비스로 용량 업그레이드 하거나
tomcat/logs 확인 후 삭제
* 원인 2 - tomcat 이 기존 파일 삭제를 제대로 못 하는 경우
-190419 추가
톰캣은 war 파일 올리면 자동으로 WAS를 업데이트 함.
이때 인코딩 문제 등으로 기존 파일을 제대로 지우지 못 하면서
새로운 war 파일을 업데이트하지 못 하는 경우...
다음 디렉토리를 확인해야 한다.
~/www
~/ROOT
~/tomcat/work
해당 디렉토리 내에서
rm * -rf 명령으로 수동 삭제 후 진행 할 수 있음
주의 : rm * -rf 는 하위 디렉토리 포함하여 모두 삭제하므로
의도하지 디렉토리 에서 실행하는 경우 큰 문제가 생길 수 있음
특히 work 이하의 디렉토리가 FileZilla 에서는 특별한 파일 없는 것으로 보이는데
실제로는 파일이 존재하여 상기 오류 발생시킨 경우가 있었음.