Tomcat5 [Tomcat] Tomcat 실행 흐름 (feat.setenv.bat 파일) 나는 무조건 CATALINA_HOME, JAVA_HOME 등의 환경변수를 catalina.bat 안에 작성해야 한다고 생각했다. 그런데 톰캣 내부 구조를 보다 보니, 생각보다 몰랐던 내용들이 많이 있었다.이번 글에서는 Tomcat의 startup.bat부터 catalina.bat, 그리고 setenv.bat까지의 톰캣 실행 흐름을 정리해 보겠다. 우선, 흐름부터. Tomcat 실행 흐름./startup.bat을 입력하면 아래처럼 진행된다.startup.bat 실행내부에서 catalina.bat start 호출catalina.bat는 다양한 환경 설정을 로드함.setenv.bat (존재하는 경우)catalina.base / catalina.home 환경 변수 설정java 명령어를 이용해 org.apach.. 2025. 7. 4. [Tomcat] Tomcat의 war-tracker 파일 분명 war 파일을 압축해제했을 시 /META-INF/ 안에 MANIFEST.MF 파일만 존재했는데, tomcat을 사용시에는 war-tracker라는 이름의 파일이 생기는 경우를 발견했다! 그래서 찾아서 정리해보았다, 그 파일의 정체가 무엇인지... 1. war-tracker 파일의 정체war-tracker는 Tomcat이 .war 파일을 자동 배포(autoDeploy)할 때 생성하는 내부 추적 파일이다. 이 파일은 .war 파일의 변경 여부를 감지하고, 필요한 경우 자동으로 다시 압축 해제하여 애플리케이션을 재배포하는 역할을 한다.생성 위치webapps/ ├── myapp.war ├── myapp/ ├── META-INF/ └── MANIFEST.MF └─.. 2025. 3. 28. [Tomcat] Tomcat > bin 디렉터리의 주요 파일 설명 Tomcat의 bin 디렉토리 안에는 다양한 파일들이 있어서, 오늘 한번 찾아보며 정리를 하려고 한다. Tomcat의 bin 디렉터리에는 다양한 스크립트 및 실행 파일이 포함되어 있다. 이 파일들은 Windows와 Linux(macOS 포함)에서 Tomcat을 실행하고 제어하는 데 사용된다.1. Tomcat 시작 및 종료 관련 파일 파일명 설명 실행 환경 catalina.shTomcat 서버 실행 및 관리하는 메인 스크립트 (Linux/macOS용)Linux/macOS (SH)catalina.batTomcat 서버 실행 및 관리하는 메인 스크립트 (Windows용)Windows (BAT)startup.shTomcat을 백그라운드에서 실행하는 스크립트 (catalina.sh start와 동일)Linux/.. 2025. 2. 11. [Tomcat] tomcat - work directory 의문화면에서 404 에러가 노출되고, Failed to delete generated class(java) file 에러가 계속 발생하였다. 찾아보니 tomcat의 work에 카탈리나에 지워지지 않은 파일들이 쌓여서 생긴 것이기 때문에, 정말 work를 날리기만 해도 문제는 해결되었다. 그런데 여기서 work 파일이 뭐 하는 애인지 확실히 뭔지 몰라서 정리해보려고 한다. work 디렉토리란,tomcat - work 디렉토리 work 디렉토리 : jsp 페이지와 서블릿 클래스와 같은 동적 콘텐츠 + 세션파일을 저장하는 임시 디렉토리html코드와 java코드로 이루어진 jsp파일이 서버에 도착하면 컴파일이 되고, java servlet으로 변환되어 그 servlet 클래스는 톰캣 work 디렉토리에 저장된다.. 2023. 3. 9. [Tomcat] 톰캣 하나에 여러 사이트 구축 의문하나의 톰캣에 두개 이상의 서비스를 구축하기 위해서는 여러 방법이 있지만 그 중에서도 가장 간편한 것은 port를 다르게 하는 것과 context-path를 다르게 하는 것이다. 톰캣의 server.xml 파일에서 설정하면 되는데, 나는 지금껏 port를 같게 하면 context 또한 무조건 설정을 따로 해줘야 한다고 생각했다. 그런데! 따로 context-path 지정을 안해줘도 정상적으로 작동한다는 것을 발견했다..! 답잘 동작하는걸 떠나서 context 지정을 따로 안 해줬는데 그럼 어떤 걸 path로 삼고 나뉘어지는가에 대해 찾아보니 appBase라는 결론에 도달했다. appBase에 지정된 폴더로 찾아가서 리소스를 찾는 것이다. 그리고 그 리소스 명으로 context가 나뉘어지고 있었다. .. 2023. 3. 7. 이전 1 다음