[Jeus] 핫디플로이테스트
본문 바로가기
IT/Middleware

[Jeus] 핫디플로이테스트

by 로진김 2021. 7. 7.

  핫디플로이테스트의 의미는 jsp 파일을 수정하면 바로 반영이 되지만, class 파일 자체 수정을 하게 되면 서버를 재기동하고, class를 load 시키는 과정을 따라야 합니다. 핫디플로이는 재기동하는 과정을 따르지 않고, 동적으로 변경할 수 있게 만드는 설정입니다.

 

 Jeus 핫디플로이는 개발 단계에서만 사용하는 것을 권장합니다. 운영단계에서 사용하다가 서버스가 멈추는 등의 상황을 초래할 수 있기 때문에 운영단계에서는 사용하지 마시길 바랍니다. 지금은 테스트 단계라서 큰 문제가 없지만, 실제 서비스되는 애플리케이션을 재기동하는 것은 매우 어렵습니다.

 

1. Jeus 설치할 때 모드를 확인합니다. 

 

 처음 Jeus를 설치할 때 production mode로 설치하였는데 이를 development mode로 변경해야 합니다.

 config 디렉터리 안에 domain.xml 파일을 vi로 엽니다.

 

<production-mode>true</production-mode>

-> <production-mode>false</production-mode>

 

이렇게 바꿔줍니다.

 

2. FTP 프로그램(ex. FileZila)로 소스코드 폴더 /jeus8 안으로 옮기기

소스코드 폴더 명은 login 으로 설정하였습니다.

 

3. webadmin에 접속하여 application을 deployment(exploded 모드)

*한글이 깨질 경우

webadmin에서 servers 선택 -> 해당 서버 클릭 -> engine 설정의 basic 설정 -> 고급 선택사항

인코딩 설정 3가지 default설정에 UTF-8로 셋팅(실제로 Request Encoding, Response Encoding 두 개만 설정하면 한글이 정상적으로 출력됨)

 

4.  jeus-web-dd.xml 생성

Jeus 계정에서 ftp로 옮긴 디렉터리로 이동

webddgen -file /home/jeus/jeus8/login


WEB-INF/jeus-web-dd.xml created successfully.
라고 뜨면 잘 생성된 것입니다.

 

WEB-INF로 접속하여 ls 명령어를 하면

$ls
classes  jeus-web-dd.xml  lib

다음과 같이 나옵니다.

 

5. jeus-web-dd.xml 파일 수정

   <auto-reload>
      <enable-reload>true</enable-reload>
      <use-jvm-hotswap>false</use-jvm-hotswap>
      <check-on-demand>true</check-on-demand>
   </auto-reload>

구문을 추가한다. check-on-demand는 기동 할 때마다 소스코드가 변경되었는지 체크하는 로직이므로 성능 저하가 될 수 있으니 서비스 오픈 전에만 해당 설정을 사용해야 한다.

 

6. java 파일 수정

WEB-INF/classes 디렉터리로 이동하여 vi 편집기로 java파일을 수정합니다.

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyLoginServlet extends HttpServlet{

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        resp.sendRedirect("login2.html");
    }
}

resp.sendRedirect("login1.html"); 을 resp.sendRedirect("login2.html"); 로 변경합니다.

 

7. 컴파일

$ javac -classpath /home/jeus/jeus8/login/WEB-INF/lib/javax.servlet.jar MyLoginServlet.java

 

8. 재접속

열어놓았던 홈페이지의 뒤로 가기 하여 main.html로 돌아간 뒤 다시 클릭하여 들어가 보면 내용이 바뀜

main.html
소스코드 변경 전 login1.html
소스코드 변경 후 login2.html

 

반응형