전체 서비스를 다시 시작하지 않고 Tomcat 웹앱을 어떻게 업데이트합니까?
저는 Tomcat
. 약 5 개의 앱이 실행중인 개발 머신이 있습니다. dev에도 불구하고 테스트 중에 고객이 상당히 많이 사용합니다.
그래서 우리가 하나의 클래스 파일에서 하나의 작은 변경을해야한다고 가정하십시오. 지금 당장은 Tomcat을 종료하고 (다른 4 개의 앱에 영향을 줌) WAR
파일 (및 웹 앱 디렉토리)을 삭제 하고 새 WAR
파일을 재배포하고 Tomcat
.
물론 이것은 모든 앱에 대해 로그인 한 모든 세션을 파괴하기 때문에 몇몇 사람을 화나게합니다.
이 작업을 수행하는 더 좋은 방법이 있습니까? 내 말은, dev 컴퓨터의 모든 것 대신 변경된 CLASS 만 다시로드하는 방법이 있습니까?
감사.
Tomcat의 관리자 응용 프로그램 을 사용해 보셨습니까 ? Tomcat을 종료하지 않고도 war 파일을 배포 해제 / 배포 할 수 있습니다.
Manager 애플리케이션을 사용하지 않으려면 webapps 디렉토리에서 war 파일을 삭제할 수도 있습니다. Tomcat은 잠시 후 애플리케이션을 배포 해제합니다. 그런 다음 war 파일을 디렉토리로 다시 복사하면 Tomcat이 war 파일을 배포합니다.
Windows에서 Tomcat을 실행하는 경우 다양한 파일을 잠그지 않도록 컨텍스트를 구성 해야 할 수 있습니다.
다운 타임이 전혀 없을 경우 Tomcat 7의 병렬 배포 를 살펴볼 수 있습니다. 동시에 동일한 컨텍스트 경로를 사용하여 여러 버전의 웹 애플리케이션을 배포 할 수 있습니다. 요청을 컨텍스트 버전에 일치시키는 데 사용되는 규칙은 다음과 같습니다.
- 요청에 세션 정보가 없으면 최신 버전을 사용하십시오.
- 요청에 세션 정보가있는 경우 각 버전의 세션 관리자에서 일치하는 세션이 있는지 확인하고 하나가 있으면 해당 버전을 사용합니다.
- 요청에 세션 정보가 있지만 일치하는 세션을 찾을 수없는 경우 최신 버전을 사용하십시오.
여러 가지 쉬운 방법이 있습니다.
웹앱의 web.xml을 터치하기 만하면됩니다.
touch /usr/share/tomcat/webapps/<WEBAPP-NAME>/WEB-INF/web.xml
전체 war 파일을 빌드하고 다시 배포하는 대신 WEB-INF / lib에서 특정 jar 파일을 업데이트 한 다음 web.xml을 터치 할 수도 있습니다.
webapps / YOUR_WEB_APP 디렉토리를 삭제하면 Tomcat이 5 초 이내에 war 배포를 시작합니다 (war 파일이 webapps 폴더에 여전히 존재한다고 가정).
일반적으로 새 버전으로 war 파일을 덮어 쓰면 tomcat에 의해 자동으로 재배치됩니다. 그렇지 않은 경우 위에서 설명한대로 web.xml을 터치 할 수 있습니다.
복사 이미 웹 어플리케이션 폴더에 "디렉토리를"폭발 이상
apache tomcat의 conf 디렉토리에서 context.xml 파일을 찾을 수 있습니다. 해당 편집 태그에서 < Context reloadable = "true" >. 이렇게하면 문제가 해결되고 서버를 다시 시작할 필요가 없습니다.
'program story' 카테고리의 다른 글
제네릭 유형과 함께 'using alias = class'를 사용하십니까? (0) | 2020.09.08 |
---|---|
웹 사이트는 기본 홈페이지 나 검색 공급자가 아님을 어떻게 알 수 있습니까? (0) | 2020.09.08 |
브라우저 확대 / 축소 수준 변경 (0) | 2020.09.08 |
Android의 JNI에서 SIGSEGV (세분화 오류)를 포착하고 스택 추적을 얻으려면 어떻게해야합니까? (0) | 2020.09.08 |
Visual Studio의 개발자 별 app.config / web.config 파일 (0) | 2020.09.08 |