반응형 개요WebLogic Server에 웹어플리케이션 배포 절차에 대해서 알아 보도록 합니다. 구성아래 예는 exploded 웹어플리케이션을 배포하는 예이다 Step 1) 어플리케이션이 위치한 디렉토리 선택 WEB-INF/weblogic.xml에 context-root를 지정하지 않으면 웹어플리케이션이 있는 디렉토리의 이름이 Context Root 가 됨 [그림 1] exploded 웹 어플리케이션이 위치한 경로 지정Step 2) 어플리케이션의 설치 범위 선택 - [이 배치를 어플리케이션으로 설치] 선택 후 다음 진행 [그림 2] 어플리케이션 설치 유형 및 범위 선택Step 3) 어플리케이션을 배치할 서버 및 클러스터 선택 [그림 3] 어플리케이션을 배치할 서버(클러스터) 지정Step 4)추가 설정 소스 접근성을 "다음 위치에서 배치를 액세스할 수 있음" 선택 - nostage 준비모드 Step 5) 배치 완료 [그림 4] 어플리케이션 배치 완료반응형 공유하기 게시글 관리 구독하기날았다 고양이저작자표시 'WEB & WAS > WebLogic' 카테고리의 다른 글[WebLogic] WebLogic 설치후 JDK 업데이트 하기 (0)2019.09.11[WebLogic] Apache WebLogic 연동 (0)2019.09.10[WebLogic] Node Manager 설정 (0)2019.09.10[WebLogic] 서버 생성 (0)2019.09.08[WebLogic] 설치 및 삭제(Silent Mode) (0)2019.09.08weblogic.xml 설정방법 weblogic.xml은 WEB-INF\ 에서 web.xml 과 함께 있다. web application 구현시 WAS 로 weblogic 을 많이 선택하게 되는데 weblogic 을 띄울떄 weblogic.xml 에 설정값을 작성해 둔다. 그 설정값에 대한 설명을 한 내용이다. 아래 설정 스크립트는 weblogic 9.x 이상에서 적용된다.
서블릿을 수정하고 재컴파일 한 경우 브라우저에서 요청을 하데 되면 컨테이너가 <servlet-reload-check-secs> 에서 설정한 값을 읽어들여 서블릿 최종버전을 로드하게 된다. 컨테이너는 WEB-INF/classes 에 있는 클래스 파일을 읽어들일 것이다. <servlet-reload-check-secs> 설정된 값은 최신버전으로 체크해서 재로딩하는 시간을 나타낸다. 개발 버전은 보통 1로 설정한다. 1초마다 로드한다는 말이다. 반대로 운영에서 개별 클래스를 변경하게 하지 않을려면 -1 을 설정하면 된다.
<weblogic-web-app> <context-root>/ep5cm</context-root> <container-descriptor> <servlet-reload-check-secs>-1</servlet-reload-check-secs> </container-descriptor> </weblogic-web-app>
pageCheckSeconds 값은 JSP 에 대한 요청이 올때마다 컨테이너가 최신버전인지 체크하게 하는시간이다. 예제와 같이 10초로 설정이 되어있다면 최종 stale checking 시간과 현재 시간과의 간격을 체크하여 10초보다 더 크다면 페이지가 재 컴파일 되게 된다. 보통 개발시 1로 설정하고 진행을 하며 반대로 운영모드 일때는 -1 을 설정하여 재컴파일이 안되도록 설정한다. <weblogic-web-app> <jsp-descriptor> <jsp-param> <param-name>pageCheckSeconds</param-name> <param-value>10</param-value> </jsp-param> </jsp-descriptor> </weblogic-web-app> 아래 내용은 <timeout-secs> 웹세션 타임아웃을 설정한 값이다. 단위는 초이며 3600 이니까 60분이 되는 것이다. <invalidation-interval-secs> 의 설정된값은 session 에 bound 된 것들을 unbound 시키는 시간을 나타낸다. 이것은 내부적으로 invalidate() 를 호출한다. <id-length> 는 세션 ID 길이를 설정하는 값이다. 이값을 설정하는 이유는 세션아이디를 알아내기 위해 무차별적인 공격을 막기 위한 길이이며 128비트 이상이어야 한다. 128비트 보다 짮은 세션아이디를 설정하게 되면 불순한 의도를 가진 응용프로그램에 취약점을 노출하게 된다. <cookie-name> 는 웹로직에서 cookie 에 대한 셋팅을 한것인데 세션아이디는 여기서 설정한 cookie 와 함께 관리하게 된다. 그래서 브라우저가 쿠키를 지원할경우 JSESSIONID 라는 쿠키값을 사용하여 세션아이디에 전송하게 된다. 쿠키를 지원하지 않는 브라우저에서는 JSESSIONID 값을 URL Parameter로 서버에 세션아이디를 전달하게 된다. <persistent-store-type> 은 두개의 서버에서 클러스터링 환경을 지원해 주고자 할 때 설정하는 곳이다.
<weblogic-web-app> <session-descriptor> <timeout-secs>3600</timeout-secs> <invalidation-interval-secs>20</invalidation-interval-secs> <debug-enabled>false</debug-enabled> <id-length>52</id-length> <cookie-name>JSESSIONID</cookie-name> <persistent-store-type>replicated_if_clustered</persistent-store-type> </session-descriptor> </weblogic-web-app>
다음은 인코더를 설정하는 부분으로 resource-path 의 / * 의미는 URL 하위에 있는 모든 페이지들에 적용하라는 표시가 된다. 적용타입은 아래에 java-charset-name 값으로 하게 되는데 예제에서는 UTF-8 로 적용하게 되어있다.
<weblogic-web-app> <resource-path>/*</resource-path> <java-charset-name>UTF-8</java-charset-name> </weblogic-web-app>
흔히 두가지 이상의 언어도 사이트를 구분해서 언어를 적용하고 싶을때가 있다. 예를 들어 일본어 사이트와 한글사이트를 구분해서 표현하고자 할 때 URL 주소아래에 /kr, /jp 를 붙여 구분한다. 페이지의 접근을 구분해서 설정하고 weblogic 은 아래와 같이 resource-path 에 구분 URL 을 넣고 java-charset-name 에 원하는 인코더를 넣어 설정한다.
<weblogic-web-app> <resource-path>/kr/*</resource-path> <java-charset-name>euc-kr</java-charset-name>
<resource-path>/jp/*</resource-path> <java-charset-name>SJIS</java-charset-name> </weblogic-web-app>
JSP 파일을 컴파일해서 명시적인 주소로 집어넣기 위해 설정하는 곳이다. JSP 는 컴파일 되게 되면 servlet java 형태로 만들어져 설정한 주소로 들어간다. 이것을 설정하지 않으면 eclipse 에서 임시폴더인 tmp 로 만들어 집어넣고 속도 또한 떨어지게 된다.
<weblogic-web-app> <keepgenerated>true</keepgenerated> <page-check-seconds>1</page-check-seconds> <verbose>true</verbose> <working-dir>D:\workDir\admin</working-dir> <print-nulls>false</print-nulls> <debug>true</debug> </weblogic-web-app>
공유하기 게시글 관리 구독하기Giles Programing |