728x90
이 글의 주요 내용은 서비스를 운영하면서 conf/web.xml 파일을 아무리 수정해도 반영되지 않는 증상이 있었습니다. 이 증상의 원인은 context.xml 파일이였습니다. 이 web.xml를 정의하는 파일이 따로있고 이는 총 3개의 web.xml이 있고 우선순위가 존재합니다.
자세한 내용은 아래 적어두었습니다.
WEB-INF/web.xml
- 역할: 웹 애플리케이션의 배치 설명자(deployment descriptor)로 사용됩니다.
- 위치: 각 웹 애플리케이션의 WEB-INF 디렉토리 내에 위치합니다.
- 내용: 서블릿, 필터, 리스너 등의 설정과 매핑 정보, 초기화 파라미터, 보안 설정 등을 정의합니다.
- 범위: 특정 웹 애플리케이션에만 적용됩니다.
WEB-INF/tomcat-web.xml
- 역할: 특정 웹 애플리케이션의 Tomcat 전용 설정을 담고 있습니다.
- 위치: 각 웹 애플리케이션의 WEB-INF 디렉토리 내에 위치할 수 있지만, Tomcat의 conf 디렉토리에 위치하는 경우도 있습니다.
- 내용: Tomcat 고유의 설정이나 오버라이드를 포함할 수 있습니다.
- 범위: 특정 웹 애플리케이션에만 적용되며, Tomcat에서만 인식됩니다.
${catalina.base}/conf/web.xml
- 역할: Tomcat 서버의 전역 설정 파일로, 기본 웹 애플리케이션 설정을 정의합니다.
- 위치: Tomcat 서버의 conf 디렉토리 내에 위치합니다.
- 내용: 모든 웹 애플리케이션에 공통으로 적용될 기본 설정을 포함합니다. 예를 들어, 기본 서블릿, MIME 타입 매핑 등이 정의됩니다.
- 범위: Tomcat 서버에 배포된 모든 웹 애플리케이션에 적용됩니다. 개별 웹 애플리케이션의 WEB-INF/web.xml 파일에서 이를 오버라이드할 수 있습니다.
context.xml에서 web.xml 지정 및 사용
web.xml을 어디에 있는 web.xml 파일을 사용할 것인지 지정해 주는 게 context.xml이다.
그리고 위에 보면 개별 웹 애플리케이션의 WEB-INF/web.xml 파일에서 이를 오버라이드할 수 있습니다. 이 내용을 이해해야 한다.
context.xml 에 들어가면 아래와 같이 되어있다.
맨 위부터 순서로 적용되고 ${catalina.base}/conf/web.xml 파일은 WEB-INF/web.xml 파일이 있다면 이 파일을 우선한다는 얘기다.
$ vi <프로젝트경로>/conf/context.xml
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
결론
환경에 따라, 그리고 원하는 범위 적용에 따라 사용하는 것을 권장한다. 끝!
728x90
'Linux' 카테고리의 다른 글
[NGINX] NGINX설치 방법 (Linux) (0) | 2024.08.27 |
---|---|
[WEB] X-Forwarded 헤더는 무엇일까? (0) | 2024.08.07 |
[Nginx] Nginx에서 upstream을 이용해 부하 분산 하기 (0) | 2024.07.17 |
[Jenkins] Gradle 버전 신규 추가 방법 (0) | 2024.07.16 |
[Server] Nginx, Apche, PHP, Tomcat 버전 정보 숨기기 (0) | 2024.06.28 |