WAS란?
WAS는 소켓을 가지고 특정 프로토콜로 소통하는 프로세스를 의미함
- WAS = 웹 서버(CSS, Javascript, 이미지) + 웹 어플리케이션 서버
jar, war, ear
- 압축의 해제 없이 JVM에서 각 파일들을 접근하여 사용할 수 있도록 설계됨.
- path 설정을 번거롭게 하지 않아도 됨.
- ear > war > jar > class
- jar(java archive)
- classpath 문제 해결
- war(web archive)
- 웹어플리케이션 지원 압축
- jsp, servlet, gif, html, jar등을 압축하고 지원
- WAS(Jeus, Tomcat)은 War를 잡아서 서버를 작동함.
- ear(enterprise archive)
- 서버 배포 단위
- jar, war를 묶어서 각각의 기능을 지원함.
- 서버 배포 단위
ClassLoader
- 클래스 로딩은 런타임중에서도 가능함.
- 클래스 로더를 통해 메모리에 클래스 정보를 로딩함.
- ClassLoader는 계층 구조를 가지고 있다.
- bootstrap $JAVAHOME/jre/lib/rt.tar (기본 JRE 라이브러리)
- extension $JAVAHOME/jre/lib.ext/*.jar (확장 라이브러리)
- system $CLASSPATH (클래스패스 입력 순서대로 로딩)
- webapp1, webapp2
- 어플리케이션 마다 클래스 로더가 존재하여 서로 독립적임.
- 탐색순위
- parent-last, child-first
- parent-first, child-last
- 이미 로딩된 class 정보는 중복되서 로딩되지 않음. 그러므로 classpath가 먼저인 클래스가 로드됨.
WAS 계층구조
Server (server.xml) -> Context (context.xml) -> Web설정(web.xml) -> Spring 설정(spring-*.xml)
Listener
특정 이벤트(특정한 사건)가 발생하기를 '귀 기울여' 기다리다가 실행되는 컴포넌트(메서드나 함수)
도메인, 서브도메인, 컨텍스트간 세션 공유
local.lgdisplay.com
- 도메인
local.lgdisplay.com/lgcom
- /lgcom 서브도메인
서브 도메인별 컨텍스트 생성
컨텍스트간 데이터를 루트 컨텍스트를 통해서 교환가능하다.(서브 도메인간 동일 JSESSION_ID 사용)
<!-- The contents of this file will be loaded for each web application -->
<Context crossContext="true">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
...
Jeus
Container
컨테이너 별로 java.exe
가 생성됨. 제우스에 의해 생성된 컨테이너인듯.
- 컨테이너는 독립적인 형태를 보인다.
- 컨테이너 별로 ClassLoader가 존재하여 서로 다른 클래스 리소스를 사용한다.
JEUS 설정파일
C:\WIDE_LPL\bin\jeus5.0\config\hr\JEUSMain.xml
-
웹 서버 설정
-
엔진 설정
-
application 설정
-
프로젝트 war 경로 설정
-
Target Container 지정
yangyag /home/jeus/jeus6/webhome/app_home/test.war COMPONENT / ca-dev_container1
-
C:\WIDE_LPL\bin\jeus5.0\config\hr[engine]\WEBMain.xml
- 엔진설정
- 포트설정
WebtoB
웹서버 기능 제공, Jeus Web Container와 인터페이스 웹 어플리케이션 서버 기능 제공
TMAX에서 개발한 소프트웨어로 웹 서버의 성능을 향상시키기 위한 프록시 서버로 사용된다.
- 클라이언트 요청 → WebtoB → WebServer(JEUS)
Tomcat
AutoDeploy
톰캣 최신버전은 AutoDeploy를 제공하는 것 같음. 낮은 버전은JLabel을 구입해서 적용해야 AutoDeploy가 작동함. (Jeus는 내장기능인데.. ㅜ)