본문 바로가기

WAS/WebLogic

[weblogic] 애플리케이션 hot-deploy 관련 옵션 정리

728x90

=========================================

참고

https://blog.naver.com/PostView.nhn?blogId=ailov&logNo=60185838900

=========================================

 

${APP_DIR}/WEB-INF/weblogic.xml 상에 애플리케이션을 즉각 배포할 수 있는 hot-deploy 설정 옵션을 정리한다.

 

jsp, servlet(class 파일), xml 파일을 수정하고 재컴파일 한 경우 브라우저에서 요청을 하게 되면 컨테이너가

옵션 별로 설정한 값을 읽어들여 최종 수정사항을 반영하게 된다. 

컨테이너는 WEB-INF 경로 하위의 jsp, class, xml 파일을 읽어들이는 것이다.

<weblogic-web-app>
     // weblogic 모드가 dev인 경우, default 값은 1 --> 1초마다 체크, 변경 사항 있는경우 반영
      // weblogic 모드가 prod인 경우, default 값은 -1 --> 절대 체크하지 않음
      
    <jsp-descriptor>
      // jsp페이지를 설정한 값마다 체크 (단위: 초)
      <page-check-seconds>1</page-check-seconds> 
    </jsp-descriptor>

    <container-descriptor>
       // weblogic 모드가 dev인 경우, default 값은 1 --> 1초마다 체크, 변경 사항 있는경우 반영
       // weblogic 모드가 prod인 경우, default 값은 -1 --> 절대 체크하지 않음
       
        // class파일을 설정한 값마다 체크 (단위: 초)
        <servlet-reload-check-secs>1</servlet-reload-check-secs> 
        
        //xml등의 파일을 설정한 값마다 체크 (단위: 초)
        <resource-reload-check-secs>1<resource-reload-check-secs> 
    </container-descriptor>
</weblogic-web-app>

 

※ 페이지를 호출시 log상에 컴파일 에러가 발생한다면,
weblogic.servlet.jsp.CompilationException: Failed to compile JSP test.jsp

이런 경우 크게 두가지 문제가 있을 수 있다.
1) 소스 문제로 컴파일이 되지 않음
2) JAVA 컴파일러가 고장남

첫번째의 경우 해당 로그를 확인하시고 소스를 수정해주시면 됩니다. 
간혹 "test 및 로컬에서는 잘되는데 왜 서버에서는 컴파일이 안되나요?" 라는 질문이 온다면,
이럴 경우 Server환경과 테스트 환경의 차이점도 확인한다.

그래도 안되면 임시파일을 삭제해본다.

WebLogic은 jsp페이지를 컴파일하여 class파일로 적재해 놓습니다. 

변동사항이 없으면 매번 컴파일하지 않고 그대로 가져다가 사용한다.

경로는 $DOMAIN_HOME/servers/[서버이름]/tmp/_WL_user/[앱이름]/[랜덤]/jsp_servlet
위에 보시면 아마도 원래의 페이지의 class파일을 찾으실 수 있습니다.

위의 작업까지 했는데도 안 된다면, 설정이 적용이 되었는지

확인을 위한 테스트 페이지 호출해본다.

성공적으로 호출하였다면 소스 반영 옵션은 정상적으로 적용이 되어 있는 것이다. 

해당페이지 및 권한, 환경등에 호출이 불가한 원인이

숨어서 있을 경우도 잇으니 다시 한 번 확인을 해야한다.