WEB

tomcat이란?

Tony Lim 2021. 6. 24. 11:05

rest api 같은 경우에는 direct 로 EIS Tier에 연결된다.

View단이 필요할 때는 Web Tier를 거치게된다. 거기서 비즈니스로직을 거처야한다면 비즈니스 티어를 거치게된다.

Tier 에서 Container로 바뀌었다. 영역에서 하나의 기술적인 구현체로 바뀌었다. 

Db 에 direct에 접속할 필요가 없다. DB관련 된것을 알 필요없이 EJB Container에게 요청만 하면된다.

 

Applet Container 는 웹 브라우저라고 생각하면 된다. 

 

 Tomcat은 Web Container만 구현한 container다.  따라서 Http 통신만 Tomcat과 소통이 가능하다 .TCP 같은 프로토콜은 불가능하다.

비즈니스 container는 포함되지 않는다.

JEUS - Tmax에서 만든 JEE server다. tomcat + EJB Container가 된것이다.

Jasper 는 class 파일로 컴파일이되어서 Catalina 가 돌릴 수 있게 된다.

설치하는 방법중에는 Tomcat multi instance 방법이 제일 괜찮다.

 

리눅스기준으로 tomcat 9 를 설치하는데 필요한 환경변수이다. 

그냥 기존방식으로 설치하게 되는경우 tomcat을 다른 버젼으로 바꿔야 할떄면 모든 설정파일들 (web.xml, startup.sh 등등..) 일일이 비교하면서 복사 붙여넣기를 해줘야한다. 즉 버그가 날 확률이 매우 높아진다.

 

Tomcat들의 Shell script

startup.sh 

  • tomcat을 실행시킨다.
  • 마지막에는 catalin.sh 를 호출하도록 되어있다.

catalina.sh

  • main shell script로 tomcat을 startup ,shutdown 시킨다. 
  • tomcat을 control 할수 있는 variable 들이 존재한다.
  • 서블릿 엔진이름 이기도 하다.

setenv.sh

  • catalina.sh 를 수정하지 않고 여기에다 수정해도 된다. 그러면 catalina.sh 가 나중에 source 명렁어를 통해 불러온다. 
  • 근데 처음에 tomcat 압축해제를 하면 존재하지않으므로 만들어 써야한다.

 

CATALINA_HOME

  • catalina 가 build 되는 directory 즉 기준이되는 디렉토리다. 

CATALINA_BASE

  • Home에 있는것들을 기반으로 또다른 tomcat instance 를 만들 수가 있다. 

CATALINA_OUT

  • tomcat의 표준에러나 표준출력의 파일위치들을 바꿀수있다.
  • default = $CATALINA_BASE/logs/catalina.out

CATALINA_TMPDIR

  • default = $CATALINA_BASE/tmp

CATALINA_OPTS

  • JAVA_OPTS 랑 구분을 해주어야 한다. 
  • tomcat에서만 사용할 수있는 것들 (heap size, GC logging , JX ports) 같은것들을 세팅할 떄 쓴다.
  • Java가 start, ,run ,debug 가 실행되고나서 runtime일떄 실행되는 것들이다.

 

Tomcat multi instance 방법을 이용하여 설치하면 위와 같이 버젼을 바꾸어야 하는 상황에서도 symbolic link 만 바꿔주면 된다.

톰캣 설치하기 - YouTube