====== Hot Deploy ======
  * description : How to set Hot Deploy to Tomcat Server
  * author : 오션, slaptear
  * email : shlim@repia.com, sgjang@repia.com
  * lastupdate : 2023-02-01 Wed
\\
===== Hot Deploy =====
  * 서버 실행 중 수정된 Java 소스가 배포될 경우 서버를 재가동하지 않고 변경된 Java 소스를 바로 적용하는 기능\\
  * 서버 무중단 배포 기능
==== Step ====
  * 먼저 Eclipse의 JAVA 버전 확인 후 진행합니다.
    * 만약 Eclipse의 JAVA 버전이 **//''1.8''//**일 경우 아래와 같이 진행합니다.  
    * Eclipse의 JAVA 버전이 11일 경우 Tomcat Runtime의 JRE 버전이 **//''Workbench default JRE''//** 로 기본 설정되어 있어서 실행 시 서버가 중단되는 오류가 생깁니다.
      * Tomcat Runtime의 JRE 버전을 **//''1.8''//**로 변경하여야 합니다. ([[wiki:was:tomcat:hot_deploy#tomcat_runtime_jre_버전_변경|변경하는 방법]])
    
1. MVN Repository - Springloaded 1.2.8.RELEASE에서 **//''springloaded-1.2.8.RELEASE.jar''//**를 다운로드 (아래 이미지를 클릭하여 이동합니다)\\ 
\\ 
[[https://mvnrepository.com/artifact/org.springframework/springloaded/1.2.8.RELEASE|{{:wiki:was:tomcat:hotdeploy01.png?500|}}]]\\ 
\\ 
2. springloaded를 적용할 프로젝트의 Tomcat Server를 더블 클릭합니다.\\ 
\\ 
3. Tomcat Server의 Overview 화면에서 **Open launch configuration**를 클릭합니다.\\ 
\\ 
{{:wiki:was:tomcat:hotdeploy02.png?500|}}
\\ 
4. Edit Configuration properties 팝업 > Arguments 탭 > VM arguments:에 하기의 내용을 입력 > Apply > OK \\ 
\\ 
 
-javaagent:설치경로 -noverify  // form 
-javaagent:D:\downloaded_programs\springloaded-1.2.8.RELEASE.jar -noverify // example 
 
\\ 
{{:wiki:was:tomcat:hotdeploy03.png?500|}}
\\ 
5. Tomcat Server의 Overview 화면에서\\ 
  * Server Options 메뉴의 모든 하위 옵션들을 체크 해제 
  * Publishing 메뉴의 하위 옵션 중 **Automatically publish when resources change**를 체크 확인 
{{:wiki:was:tomcat:hotdeploy04.png?500|}}
\\ 
6. Tomcat Server의 Overview 화면에서\\ 
  * 하단의 Modules 탭을 클릭 
  * Path를 선택 
  * 우측의 Edit 클릭 
  * Edit Web Module 팝업에서 **Auto reloading enabled**를 체크 해제 > OK  
\\ 
{{:wiki:was:tomcat:hotdeploy05.png?500|}}
\\ 
--> springloaded가 적용되고, 코딩 후 저장을 하면 WAS 재가동 없이 변경된 내용이 적용됨을 확인할 수 있습니다. 
\\
==== Source of this article ==== 
[[https://m.blog.naver.com/dktmrorl/222045899282|[IT정보]핫 디플로이(Hot Deploy) 개념]]\\ 
\\ 
[[https://oingdaddy.tistory.com/33|Eclipse, tomcat 환경에서 hot deploy 적용하기 (with springloaded)]]\\
==== Tomcat Runtime JRE 버전 변경 ====
  * Eclipse의 JRE 버전을 1.8로 변경
    * 'Servers' > 해당 서버 > 'Overview' > 'Runtime Environment' 에서 **//''Installed JREs''//** 클릭
 {{wiki:was:tomcat:hot_deploy:tomcat_runtime_environment_1_.png?500}}
    * 아래와 같이 1.8 JRE 추가
 {{wiki:was:tomcat:hot_deploy:tomcat_runtime_environment_2_.png?500}}
 {{wiki:was:tomcat:hot_deploy:tomcat_runtime_environment_3_.png?500}}
 {{wiki:was:tomcat:hot_deploy:tomcat_runtime_environment_4_.png?500}}
    * 1.8 JRE 추가한 뒤에 선택 
 {{wiki:was:tomcat:hot_deploy:tomcat_runtime_environment_5_.png?500}}
    * 아래와 같이 **//''--add''//** 부분 모두 지우고 위와 동일하게 **//''[[wiki:was:tomcat:hot_deploy#step|Hot Deploy 적용]]''//** 한 뒤에 실행
 {{wiki:was:tomcat:hot_deploy:tomcat_runtime_environment_6_.png?800}}
{{tag>오션 slaptear tomcat was hot deploy hotdeploy}}