Tomcat work 캐시 불일치: 컨테이너 환경 점검법

컨테이너 환경에서 JSP를 수정했는데 이전 화면이나 이상한 컴파일 오류가 남습니다. 때 원인을 좁히고 안전하게 수정한 뒤 재발 여부까지 확인하는 순서입니다.

JSPLinux · Docker

짧은 요약

JSP를 수정했는데 이전 화면이나 이상한 컴파일 오류가 남습니다. 문제는 임시 우회보다 실행 환경과 최초 오류를 먼저 고정해야 재발을 막을 수 있습니다. 서비스를 정상 중지하고 대상 context의 생성물만 재생성합니다.

증상과 환경

  • 기술: JSP
  • 실행 위치: 컨테이너 환경
  • 점검 번호: 071

Tomcat 9·10과 Servlet/JSP 웹 애플리케이션에서 JSP를 수정했는데 이전 화면이나 이상한 컴파일 오류가 남습니다. 상황이 나타납니다. 오류가 난 시각, 전체 메시지, 직전 변경과 실제 실행 버전을 함께 기록합니다.

원인

배포 파일과 work의 생성 servlet이 서로 다른 버전입니다. 같은 문구라도 로컬과 배포 환경의 실행 파일, 의존성, 환경변수가 다르면 원인이 달라질 수 있습니다. 이미지 안의 버전·파일·환경변수를 실행 중인 컨테이너에서 확인합니다.

재현 예시

영향이 제한된 테스트 환경에서 정상 입력과 실패 입력을 하나씩 준비합니다. 설정을 여러 개 바꾸지 말고 오류가 처음 달라지는 단계의 출력과 종료 코드를 비교합니다. 운영 비밀번호·토큰·개인정보는 예제와 로그에서 제거합니다.

단계별 해결법

1. 오류 원문의 가장 안쪽 원인과 발생 시각을 보존합니다.

2. 실제 실행 중인 JSP 버전, 작업 디렉터리와 배포 산출물을 확인합니다.

3. 서비스를 정상 중지하고 대상 context의 생성물만 재생성합니다.

4. 변경 하나마다 같은 입력을 다시 실행하고 결과를 기록합니다.

5. 새 세션 또는 깨끗한 배포 환경에서 같은 해결이 유지되는지 확인합니다.

코드·명령 예문

find <tomcat>/work -type f | head

예문의 <PID>, <host>, <path>, <context>는 실제 값으로 바꿉니다. 먼저 조회 명령으로 대상을 확인한 뒤 변경합니다.

확인법

재기동 로그와 생성 파일 시간이 새 배포와 맞는지 봅니다. 이어서 관련 자동 테스트를 두 번 실행하고 새 오류나 경고가 추가되지 않았는지 확인합니다.

주의사항

검증 비활성화, 무조건적인 관리자 권한 실행, 전체 캐시 삭제는 해결책으로 삼지 않습니다. 운영 반영 전에는 변경 범위와 되돌릴 지점을 남기고, 사용 중인 버전의 공식 문서에서 옵션 지원 여부를 확인합니다.

관련 이슈

  • work-cache와 연결된 버전·의존성 문제
  • 컨테이너 환경과 로컬 환경의 설정 차이
  • 캐시 또는 이전 배포 산출물의 영향