본문 바로가기
Tomcat

[Tomcat] tomcat - work directory

by dbs_ 2023. 3. 9.

 

의문

화면에서 404 에러가 노출되고, Failed to delete generated class(java) file 에러가 계속 발생하였다. 찾아보니 tomcat의 work에 카탈리나에 지워지지 않은 파일들이 쌓여서 생긴 것이기 때문에, 정말 work를 날리기만 해도 문제는 해결되었다. 그런데 여기서 work 파일이 뭐 하는 애인지 확실히 뭔지 몰라서 정리해보려고 한다.

 

work 디렉토리란,

tomcat - work 디렉토리

 

work 디렉토리 : jsp 페이지와 서블릿 클래스와 같은 동적 콘텐츠 + 세션파일을 저장하는 임시 디렉토리

html코드와 java코드로 이루어진 jsp파일이 서버에 도착하면 컴파일이 되고, java servlet으로 변환되어 그 servlet 클래스는 톰캣 work 디렉토리에 저장된다. 그리고 웹 브라우저에서 jsp 페이지를 요청하면 이 servlet 클래스가 실행되서 동적으로 html을 응답한다. jsp파일 말고도 java코드로 작성된 servlet 클래스 역시 컴파일되면 .class 파일로 저장되서 work에 생성된다.
즉, jsp와 servlet 클래스 모두 동적으로 콘텐츠를 생성하고 컴파일 될 때마다 work에 저장되는 것! 그러므로 work폴더를 날려도 톰캣 실행때마다 매번 다시 생성된다. 보통은 톰캣이 종료되면 같이 삭제된다. 

 

세션정보 : 세션정보가 저장되는 파일인 work 디렉토리에 있어서, 웹애플리케이션 세션정보를 유지하게 해준다. 이것도 마찬가지로 톰캣 종료될 때까지 유지.

 

위치설정 : server.xml 파일 안에서 <Context> 요소 내부에 'WorkDir' 속성으로 위치 설정할 수 있다!