Contents
see ListSpring IOException: EOFException 해결
Tomcat 실행 시 "IOException while loading persisted sessions: java.io.EOFException" 오류가 발생할 때 해결 방법입니다.
오류 메시지
SEVERE: IOException while loading persisted sessions: java.io.EOFException
SEVERE: Exception loading sessions from persistent storage원인
Tomcat이 이전 세션을 직렬화하여 저장한 파일(SESSIONS.ser)이 손상되었거나, 불완전하게 저장되어 발생합니다.
해결 방법 1: 이클립스에서 Work Directory 정리
- Servers 뷰에서 해당 Tomcat 서버 우클릭
- "Clean Tomcat Work Directory..." 선택
- 서버 재시작
해결 방법 2: 수동으로 파일 삭제
# 이클립스 워크스페이스에서
[workspace]/.metadata/.plugins/org.eclipse.wst.server.core/tmp[N]/work/
# 또는 Tomcat 설치 경로에서
[TOMCAT_HOME]/work/Catalina/localhost/[프로젝트명]/해결 방법 3: SESSIONS.ser 파일만 삭제
# 세션 파일 찾기
find . -name "SESSIONS.ser" -type f
# 삭제
find . -name "SESSIONS.ser" -type f -delete영구적 해결: 세션 저장 비활성화
context.xml에 다음 설정 추가:
<!-- 세션을 파일로 저장하지 않음 -->
<Manager pathname="" />context.xml 위치
- Tomcat 전역: [TOMCAT_HOME]/conf/context.xml
- 애플리케이션별: [프로젝트]/META-INF/context.xml
- 이클립스: Servers 프로젝트 내 context.xml
관련 설정 옵션
<Context>
<!-- 세션 저장 완전 비활성화 -->
<Manager pathname="" />
<!-- 또는 커스텀 설정 -->
<Manager className="org.apache.catalina.session.StandardManager"
pathname=""
maxActiveSessions="100" />
</Context>이클립스 추가 정리 방법
- Project → Clean 실행
- 서버 더블클릭 → Publishing 탭 → "Automatically publish when resources change" 확인
- 서버 우클릭 → Clean 실행
예방 방법
- 개발 환경에서는 세션 저장 비활성화 권장
- 서버 종료 시 정상 종료(Stop) 사용
- 세션에 직렬화 불가능한 객체 저장 주의