▣ 톰캣(tomcat)에 어플리케이션을 추가하는 방법은 두가지가 있다.

하나씩 알아보도록 하자.

 

1. webapps 디렉토리 밑에 넣는 방법

장점 : 웹 어플리케이션의 폴더구조만 가지고 있다면 자동으로 웹어플리케이션이 설정된다.

단점 : 지정된 디렉토리(톰캣\webapps\'어플리케이션명')의 하위 이외에는 설정이 불가하다.

방법 : 기본 설치된 톰캣 디렉토리에서 '톰캣\webapps\어플리케이션명' 이렇게 넣어주기만 하면.. 

         바로.. http://localhost/어플리케이션명  으로 접근 가능하다.

 

참고1) 웹 어플리케이션의 폴더구조

           어플리케이션명\WEB-INF                 ----------> 이 디렉토리 필수!

           어플리케이션명\WEB-INF\web.xml  ----------> 이 파일 필수!

참고2) web.xml의 최소내용

<?xml version="1.0" encoding="euc-kr"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
</web-app>

참고3) index.html이 있어야 되겠죠?

         web.xml에 설정한 welcome파일이 있어야 해당 context가 정상적으로 호출이 된답니다  

         --> web.xml중 <welcome-file-list>태그에 적은 거 기억나시죠?

참고4) 어플 추가후 톰캣서버리부팅없이 바로 접근가능하답니다 ㅎㅎ

 

2. 임의의 디렉토리에 웹어플리케이션을 위치시키고 싶을 때.

장점 : '톰캣\webapps\' 디렉토리에 구속될 필요가 없다.

방법 : 이전에 설명한.. server.xml에서 설정하는 방법도 있으나 이것은 자카르타에서 비추하는 방법이기 때문에 설명은 생략토록 한다.

 

앞으로는 xml형식의 파일로 Application Context를 저장하라고 하고 있다.

아래처럼!~

 

%CATALINA_HOME%\conf\Catalina\localhost\컨텍스트명.xml

 

기존에 존재하는 host-manager.xml, manager.xml 등의 파일을 저장해서 이름을 바꾸고 안에 내용중 docBase와 path만 바꾸면 끝!~

설정이 훨씬 쉽게 되었다!!! ㅎㅎ

 

- path : 웹어플리케이션의 경로명(http://localhost/'요기 붙을 내용')

- docBase : 웹어플리케이션이 위치한 폴더의 경로명(실제 경로)

 

<Context path="/myTest" docBase="C:\myTest"
              debug="0" privileged="true" reloadable="true">
    <Logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="localhost_log." suffix=".txt"
                 timestamp="true"/>
</Context>

 

※ROOT로 만들고 싶다면 ROOT.xml로 만들면 됨.

※server.xml의 HOST 항목중 appbase 속성값과 위의 docBase가 동일하면 톰캣 콘솔에..

에러가 발생하므로 경로를 다르게 해주자!~

 


▣ Context 속성(참조 : http://www.jakartaproject.com/article/jakarta/110284482002600 )

 속성

설명

 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 클래스명입니다. 지정하지 않으면 표준값이 사용됩니다

 


 

 

 

+ Recent posts