새로운 자바 웹 애플리케이션 작성
TOMCAT_HOME
아래 글에서 언급하는 TOMCAT_HOME 은 Tomcat 이 설치된 디렉토리를 의미합니다.
"Tomcat 설치" 에서와 같이 설치했다면 TOMCAT_HOME 은 C:/apps/tomcat 입니다.
새로운 자바 웹 애플리케이션을 작성을 위해 먼저 디렉토리부터 생성해야 합니다.
소스가 위치할 최상위 디렉토리(이를 Document Base 라고도 합니다.)를 bbs 라면 아래와 같이 디렉토리를 생성합니다.
- /bbs
- /bbs/WEB-INF
- /bbs/WEB-INF/classes
- /bbs/WEB-INF/lib
자바 웹 애플리케이션의 디렉토리를 TOMCAT_HOME/webapps 에 만들지 않았다면 Tomcat 이 새로운 웹 애플리케이션을 인지토록
하는 작업이 남아 있습니다.
Tomcat 5.x 부터 웹 애플리케이션을 관리할 때 별도의 XML 파일을 이용할 수 있습니다.
이 XML 문서에서 최상위 엘리먼트가 Context 입니다. Context 는 Tomcat 에게는 "자바 웹 애플리케이션"을 의미합니다.
그래서 이 XML 문서를 Context 파일이라고 합니다.
Context 파일에서 가장 중요한 정보는 웹 애플리케이션의 소스가 위치하는 최상위 디렉토리(Document Base 또는 Context Root)와
URL 로 접근하는 경로 정보(Context Path)입니다.
이 정보는 Context 엘리먼트의 docBase 와 path 속성을 이용해서 설정할 수 있습니다.
Context 파일은 작성 후 TOMCAT_HOME/conf/Catalina/localhost 디렉토리에 위치시키면 Tomcat 이 자동으로 인식하여 에러가 없다면
자바 웹 애플리케이션을 로드합니다.
만약 Context 파일이 유효한 문서가 아니면 Tomcat 은 해당 자바 웹 애플리케이션을 로드하지 않습니다.
그래서 실수가 많이 발생하는 에디트플러스와 같은 편집기를 이용하여 Context 파일을 만드는 것 보다는
Context 파일을 자동으로 생성해주는 툴을 사용하는 것이 더 좋습니다.
Tomcat 을 다운로드 할 때와 같은 URL 에서 제공하는 Tomcat Admin 툴을 보면 Context 파일을 생성해 주는 기능을
제공해주는 것처럼 보입니다. 하지만 윈도우 시스템에서 테스트 한 결과 Context 파일을 만들지 못하고 단지 메모리에 올라온 설정 정보에 해당
Context 정보를 추가 하는 듯이 보입니다.
그래서 Admin 툴을 이용하여 추가된 Context 는 Tomcat 을 재가동하면 사라집니다.
이런 이유로 아직까지는 편집기를 이용해서 Context 파일을 만드는 것이 확실합니다.
그럼에도 먼저 Tomcat Admin 툴을 이용하여 자바 웹 애플리케이션을 등록해 보겠습니다.
1. Tomcat Admin 툴을 이용한 새로운 Context 작성
먼저 Admin 툴을 다운로드 해야 합니다.
Admin 툴이라고 했는데 이것 역시 자바 웹 애플리케이션입니다.
Admin 툴은 Tomcat 을 관리하기 위해 사용합니다.
Tomcat 을 다운로드 했던 http://tomcat.apache.org/download-55.cgi
에서 Administration Web Application 의 zip 형태를 다운로드 합니다.
압축을 푼 후 conf/Catalina/localhost 디렉토리에 있는 admin.xml 파일을 TOMCAT_HOME/conf/Catalina/localhost
디렉토리에,
server/webapps/ 에 있는 admin 폴더는 TOMCAT_HOME/server/webapps/ 에 각각 복사합니다.
Tomcat 을 다시 실행한 다음 http://localhost:8080/admin 으로 방문합니다.
로그인 화면에서 User Name 는 admin, Password 는 admin 패스워드를 입력하여 로그인 합니다.
만약 설치과정 중 정했던 admin 의 패스워드가 생각나지 않는다면 TOMCAT_HOME/conf/tomcat-users.xml 에서 확인할 수 있습니다.
tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="role1" password="tomcat" roles="role1"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="admin" password="jerry" roles="admin,manager"/> </tomcat-users>
왼쪽 메뉴에서 Tomcat Server >> Service >> host(localhost) 를 선택하고 오른쪽에 위치한 셀렉트 메뉴에서
Create New context 를 선택하여 설정화면이 나오면 아래와 같이 설정합니다.

위의 설정 중 Document Base 부분은 여러분 자신의 환경에 맞게 고칩니다.
설정한 후 상단 버튼 save 와 commit changes 를 차례로 클릭한 후 Admin 툴에서 로그아웃합니다.
bbs 자바 웹 애플리케이션의 최상위 디렉토리에 테스트용
test.html 파일을 만든 후 http://localhost:8080/bbs/test.html 로 방문하여 bbs 자바 웹 애플리케이션이 작동하는지 확인합니다.
Tomcat 을 재가동 한 후 다시 방문합니다.
Context Properties
| Context Properties (Admin 툴화면) |
Context Attribute (Context 파일) |
기본값 | 설명 |
|---|---|---|---|
| Cookies | cookies | true | 쿠키를 사용여부 설정한다. 쿠키나 세션을 사용하는 웹 애플리케이션이라면 true 이어야 한다. |
| Cross Context | crossContext | false |
만약 true 이면 ServletContext.getContext() 메소드를 통해 다른 웹 애플리게이션에 대한 request dispatcher
를 리턴받을 수 있다. 이것은 웹 애플리케이션에서 다른 웹 애플리케이션에 대한 접근을 허용함을 의미한다. 보안을 위해서라면 false로 설정한다. 그러면 ServletContext.getContext() 는 항상 null 을 리턴한다. |
| Document Base | docBase | 웹 애플리케이션의 소스가 위치할 루트 디렉토리(이를 Document Base 또는 Context Root 라 한다.)를 지정한다. | |
| Path | path | 웹 애플리케이션에 접속할 URL 를 지정한다. 이를 다른 말로 context path 라 한다. 만일 path 가 XML Context 파일명과 같다면 생략 가능하다. | |
| Reloadable | reloadable | true |
WEB-INF/classes,WEB-INF/lib 디렉토리 있는 클래스나 jar 파일이 변경되면 자동으로 변경된 내용을 읽어드린다. 새로운 웹 애플리케이션을 개발하거나 개발하는 과정에서는 true 로 해서 작업 편의성을 가질 수 있지만 실제로 서비스를 운영할 때는 성능문제로 false로 둔다. |
| SwallowOutput | swallowOutput | false | true 로 설정하면 웹 애플리케이션에서 발생하는 System.out 이나 System.err 출력이 로그 파일로 전달된다. |
| Use Naming | useNaming | true | JNDI를 지원할 것인지 설정한다. |
참고문서
http://tomcat.apache.org/tomcat-5.5-doc/config/printer/context.html
2. 편집으로 새로운 Context 작성
만약에 Tomcat 을 재가동 한 후 우리의 bbs 자바 웹 애플리케이션을 Tomcat 이 로드 하지 못한다면 편집기를 이용하여 Context 파일을 생성합니다.
위에서 Admin 툴로 설정한 것과 같이 bbs 자바 웹 애플리케이션을 위한 XML Context 파일을 만들어 보겠습니다.
이때 path 속성을 생략하기 위해서는 반드시 Context 파일명은 bbs.xml 이어야 합니다.
bbs.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context
docBase="C:/www/bbs"
reloadable="true">
</Context>
Context 파일명이 위와 같이 bbs.xml 이면 path 속성은 생략 가능합니다.
만약 파일명이 bbs.xml 가 아니라면 path="/bbs" 을 Context 파일에 추가해 주어야 합니다.
bbs.xml 파일을 만든 후 TOMCAT_HOME/conf/Catalina/localhost 에 복사합니다.
http://localhost:8080/bbs/test.html 방문하여 실행이 되는지 확인합니다.
Tomcat 을 재가동 한 후 다시 방문해 봅니다.
ROOT 애플리케이션의 Document Base 변경 방법
Tomcat 을 설치하고 http://localhost:8080/index.jsp 로 접근할 수 있는 웹 애플리케이션이 ROOT 애플리케이션입니다.
이 웹 애플리케이션의 Document Base 는 TOMCAT_HOME/webapps/ROOT 입니다.
ROOT 웹애플리케이션의 Document Base 는 Admin 툴로 수정할 수 없기 때문에 수작업으로 ROOT.xml 파일을 만들어 수정해야 합니다.
아래처럼 ROOT.xml 파일을 만들고 TOMCAT_HOME/conf/Catalina/localhost 에 복사하면 bbs 애플리케이션이 ROOT 애플리케이션으로
서비스됩니다.
"Tomcat 설치" 에서 앞으로의 예제를 위해 ROOT 애플리케이션의 Document Base 를 C:/www/myproject 라고 변경했으므로 ROOT.xml 은 그대로
두도록 합니다.
ROOT.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context
docBase="C:/www/bbs"
reloadable="true">
</Context>
- 다음 : 간단한 실습
- 이전 : "자바 웹 애플리케이션" 이란?
