JAKARTAPROJECT
JAKARTA TIPJSP TIPJSP 질문&답변DATABASE TIPJAVASCRIPT TIPWEBHACKING TIP기타 TIP
자카르타 프로젝트
자카르타 프로젝트
자카르타 프로젝트 팁 게시판 입니다
Tomcat5 설정
GoodBug
이미지 슬라이더 보기

C:\Tomcat 5.0\conf에 server.xml를 열어봅시다.

무쟈게 복잡하죵? ㅎㅎ

 

일단 하나하나씩 알아 봅시다.

 

server.xml는 다음과 같은 구조로 구성되어있습니다.

-. Top level Elements : <server>는 설정파일 전체에서 Root Element이며 반면에

    <service>는 하나의 Engine과 연관된 Connector들의 집합을 말합니다.

    top level elements에는 <server>, <service>등이 있습니다.

 

-. Connector : 외부 Client와 요청을 주고 응답을 받는 Interface를 말합니다.

    connector에는 <HTTP>, <AJP>등이 있습니다. 오호~ 프로토콜과 관계된 것들이군요

 

-. Containers : 요청을 받아 응답을 처리하는 기능들의 Component를 말합니다.

     하나의 Engine은 하나의 Service에대한 모든 요청을 처리하며,

     하나의 Host는 하나의 Virtual Host에 대한 모든 요청을 처리하며,

     하나의 Context는 하나의 Web Appliction에 대한 모든 요청을 처리합니다.

    container에는 <Context>, <Engine>, <Host>등이 있습니다.

 

-. Nested Component : Nested Component는  Container의 어느 Element안에 중첩될 수도

    있으며 어떤 Element들은 Container안에도 중첩될 수 있는 반면에 다른것들은

     Context안에만 중첩될 수 있다.

    <Logger>, <Realm>, <Resources>, <Loader>등이 있습니다.

 

위에서 보니 볼것이 생각외로 많습니다.

하지만 머니머니 해도 젤 중요한건 Context이겠죠. 요 Context만 살작 보겠습니다.

 

Context가 그럼 멀까요?

Context는 특별한 Viertual Host에서 작동하는 하나의 Web Application입니다.

각 Web Application은 하나의 Web Application Archive(WAR) file나,

이에 대응하는 unpacked된 Content를 가지는 directory를 말합니다.

 

Tomcat 4.x 대 까지만 해도 context는 server.xml에 기술할 수 있었습니다.

하지만 Tomcat 5.x대 부터는 달라졌더군요.

<Host> elements안에 contenxt를 추가할 수 있지만 xml형식의 개별적인 파일로 저장 할 수도 있습니다.

개별적으로 저장하려면 위치는 $CATALINA_HOME/conf/[enginename]/[hostname]/ directory 가 됩니다.

실제로 이 위치에 가보면 admin.xml등의 파일이 있는 것을 볼 수 있습니다.

디폴트로 된 context의 xml를 만들려면 ROOT.xml로 만드시면 됩니다.

참고로 tomcat문서에서는 <Context>를 server.xml에 직접 기술하는것을 강력히 비추천 하는군요 -ㅠ-

 

예제) ROOT.xml 입니다. (reloadable="true"를 추가했군요~)

<Context path="" docBase="${catalina.home}/webapps/ROOT"
        debug="0" privileged="true" reloadable="true">

  <Logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="localhost_log." suffix=".txt"
            timestamp="true"/>

</Context>

Logger를 잠시보면 로거로 FileLogger라는 클래스를 사용할 것이며

디렉토리는 톰캣의 logs디렉토리를, 파일명은 localhost_log.yyyy-mm-dd.txt로 하겠다는 겁니다.

 

여기에 test라는 Context를 하나 더 추가해 봅시다.

우선 test.xml을 다음과 같이 만들어 봅시다.

<Context path="/test" docBase="${catalina.home}/webapps/test"
        debug="0" privileged="true" reloadable="true">

  <Logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="localhost_log." suffix=".txt"
            timestamp="true"/>

</Context>

path에는 context 경로를 적습니다. 각 요청 URI의 시작부분이 context 경로와 같을 때 해당 웹어플리케이션이 그 요청을 처리하게 됩니다. docBase는 이 웹어플리케이션에 대한 파일 경로입니다

설정 끝~

http://localhost:8080/test 를 요청하게 되면 해당 /webapps/test 밑에 있는 파일을 요청하게 됩니다

 

그럼 Context의 속성을 알아봅시다.

 

속성 설명
backgroundProcessorDelay 이 값은 컨텍스트와 그 자식 컨테이너에서 background process method가 invoke되는 delay 시간을 나타낸다.
이 값을 양수로 설정하면 어떤 쓰레드가 분기되어 일정 시간 후에 이 쓰레드가 해당 host와 자식 컨테이너에서 background process method를 실행시킵니다
만약 설정하지 않으면 디폴트값인 -1을 가지며 음수의 값은 부모 host의 background processing 정책을 사용한다는 것입니다.
참고로 컨텍스트는 세션을 종료하거나 클래스 리로딩을 위한 모니터링등을 위해 background processing을 사용합니다.
className

사용할 Java 구현체 클래스의 이름. 이 클래스는 반드시 org.apache.catalina.Context 인터페이스를 구현해야 합니다. 지정하지 않으면 표준값 (아래에 정의됩니다)이 사용됩니다

cookies

true(디폴트)로 지정하면 클라이언트가 쿠키를 지원하는 경우 세션확인의 통신수단(session identifier communication)으로 쿠키를 사용합니다. false로 지정하면 세션확인의 통신수단으로 쿠키 사용을 하지 않고, 어플리케이션에 의한 URL 다시쓰기(URL rewriting)에만 의존한다는 의미입니다.

crossContext

true로 지정하면 이 어플리케이션에서 ServletContext.getContext() 호출을 통해, 이 가상호스트에서 실행중인 다른 웹어플리케이션에 대한 요청디스패쳐(request dispatcher)를 성공적으로 얻을 수 있습니다. 보안상의 이유로 false(디폴트)로 지정하면 getContext()는 언제나 null을 반환하게 됩니다.

docBase

이 웹어플리케이션에 대한 Document Base (Context Root로도 알려져 있습니다) 디렉토리, 또는 웹어플리케이션 아카이브 파일의 경로명(웹어플리케이션을 WAR 파일로 직접 실행하는 경우)을 나타냅니다. 이 디렉토리나 WAR 파일에에 대한 절대경로명을 지정할 수도 있고, 이 Context가 정의된 Host의 appBase 디렉토리에 대한 상대경로명을 지정할 수도 있습니다

override true로 설정하면 DefaultContext element를 관련된 host에서 명백하게 상속받아 사용합니다
기본값으로 Defaultcontext element가 사용됩니다
privileged

true로 설정하면 이 컨텍스트는 관리자서블릿(manager servlet) 같은 컨테이너 서블릿을 사용할 수 있습니다.

path

이 웹어플리케이션의 컨텍스트 경로(context path)를 나타내며, 각 요청 URI의 시작부분이 컨텍스트 경로와 같을 때 해당 웹어플리케이션이 그 요청을 처리하게 됩니다. 하나의 특정 Host 내의 컨텍스트 경로들은 모두 각각 유일해야 합니다. 만약 컨텍스트 경로를 빈 스트링("")으로 지정하면, 이 Context는 이 Host에 대한 디폴트 웹어플리케이션으로 정의된 것입니다. 디폴트 웹어플리케이션은 다른 Context 들에 해당되지 않는 모든 요청을 처리할 것입니다.

reloadable

true로 지정하면, Catalina는 /WEB-INF/classes/와 /WEB-INF/lib 안 클래스 들의 변경여부를 감시하다가, 변경이 발견되면 웹어플리케이션을 자동으로 재적재(reload)합니다. 이 기능은 개발중에는 매우 유용하지만 얼마간의 실행부하(runtime overhead)가 발생하므로, 실제 운영할 용도로 어플리케이션을 배치(deploy)할 때는 사용하지 않도록 합니다. 그러나 이미 배치가 끝난 어플리케이션이라도 Manager 웹어플리케이션을 이용하면 필요할 때 재적재 하도록 할 수 있습니다

wrapperClass

이 Context로 관리할 서블릿 들에 대해 사용할 org.apache.catalina.Wrapper 구현체 클래스의 Java 클래스명입니다. 지정하지 않으면 표준값이 사용됩니다

 

from http://jakarta.apache.org

 

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

본문서는 자유롭게 배포/복사 할수 있지만

이문서의 저자에 대한 언급을 삭제하시면 안됩니다

저자 : GoodBug (unicorn@jakartaproject.com)

최초 : http://www.jakartaproject.com 

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

2008-04-14 17:10:31
211.189.124.***

 

좋은생각 ^^

0점 (0명)
팝업창 안뜨게 -_-; GoodBug 2005-02-20
Unicorn3 주절주절 26 GoodBug 2006-06-08
fieldset 활용하기 1 GoodBug 2005-03-07
tomcat Tomcat5 설정 7 Tag 1 GoodBug 2004-12-12
한자검색 및 한자공부 사이트 Na~ 2005-10-14
Mysql Table 최대 사이즈 GoodBug 2005-03-31
버그인듯... 2 All_in 2005-03-09
웹 유저 데이터베이스 권한에 대해 GoodBug 2006-03-02
덧글 7개 | 태그 1개 | 관련글보기
태그입력
쉽표(,)구분으로 한번에 여러 태그를 입력할수 있습니다
tomcat (8)
유니
(0) (0)
안녕하세요?^^* 지금 5.0을 설치를 하고요,web application을 실행하니까 안되네요. 위에서 설명하신 ROOT.xml파일을 정확히 어디에 위치해야 하나요? catarina>localhost>ROOT.xml -->여기에 두어야하나요? 에러는요..Unable to find a javac compiler; 이런 에러가 뜨는데 이게 뭐가 잘못된거죠? 그리고 자바 파일이 위치하는 곳은 어디인가요? 아직 넘 초짜라 모르는것이 많네요....시원한 답변을 부탁드려요...^^*
222.97.111.*** 2005-04-18 20:49:55
GoodBug
(0) (0)
ROOT.xml 은 Tomcat 5.0\conf\Catalina\localhost 에 넣으시면 됩니다. 여러 컨텍스트를 혼합하여 사용하지 않는다면 혹은 reloadable 같은 옵션을 주지 않는다면 굳이 ROOT.xml을 만드실 필요는 없습니다
211.189.124.*** 2005-04-22 14:43:41
GoodBug
(0) (0)
질문은 QnA로 요 ^^
211.189.124.*** 2005-04-22 14:43:53
nagne
(0) (0)
죄송합니다 아무래도 QnA로 하면 안보실것같아서.. 저 같은 경우 저렇게 했는데 -------------------------------------------------------- org.apache.catalina.startup.HostConfig checkResources 정보: Undeploying context [/manager] -------------------------------------------------------- 라는 메세지가 뜨는데 ROOT.xml 을 배치를 못시키는건지 헷갈리네요.. C:\Program ... \Tomcat 5.5\webapps\ROOT 를 사용하고 있구요..
221.155.139.*** 2006-02-17 11:09:37
nagne
(0) (0)
또 죄송합니다 ㅡㅡ; 톰켓 재시동 거니 잘 되네요..
221.155.139.*** 2006-02-17 11:11:48
galsys
(0) (0)
정말 유용한 정보네요. 감사합니다.
203.248.117.*** 2006-10-24 18:49:28
Gale
(0) (0)

굳벅님 제 블로그로 훔쳐 가더 될련지요.. ㄷㄷ

수고하세욤^^

203.236.3.*** 2008-04-14 17:10:31
이름 비밀번호
자카르타 프로젝트
자카르타 프로젝트 팁 게시판 입니다
! 번호 제목 글쓴이 일자 조회
6 JMeter Apache JMeter I탄 기본편 1 GoodBug 2005-02-18 20,994
5 Dbutils Commons-DbUtils 9 2 GoodBug 2005-02-12 14,929
tomcat Tomcat5 설정 7 1 GoodBug 2004-12-12 14,049
3 jfree Tomcat5 실행 3 GoodBug 2004-12-12 4,106
2 tomcat Tomcat5 설치 1 GoodBug 2004-12-12 4,090
1 Jakarta Project 소개 2 GoodBug 2004-12-12 5,684
copyright 2005-2017 by Unicorn