2009-09-14

톰켓 6.0 깨끗하게 하기

톰켓 6.0을 자주 사용하는데 불필요한 파일과 설정들이 많이 있다. 그래서 항상 다음과 같이 정리한다.


1. 다운로드

exe 파일이 아닌 zip이나 tar.gz 파일을 다운받은 후에 톰켓을 운영할 디렉토리에 압축을 푼다.


2. 지우기

다음 파일 혹은 디렉토리를 지운다.
  • conf/context.xml
  • conf/tomcat-users.xml
  • webapps/docs 디렉토리
  • webapps/examples 디렉토리
  • webapps/host-manager 디렉토리
  • webapps/manager 디렉토리
  • webapps/ROOT 디렉토리에서 WEB-INF/web.xml 파일을 제외한 나머지 파일을 모두 삭제한다.


3. conf/server.xml 파일 정리

취향이겠지만 난 주석을 좋아하지 않고, 애플리케이션 개발에 당장 필요하지 않은 설정은 일단 지우고 필요하면 다시 설정하는 쪽이다.

conf/server.xml 파일은 다음과 같이 정리한다.

<?xml version="1.0" encoding="UTF-8"?>

<Server port="8005" shutdown="SHUTDOWN">

  <Service name="Catalina">

    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
      redirectPort="8443" URIEncoding="UTF-8" />

    <Engine name="Catalina" defaultHost="localhost">
      <Host name="localhost" appBase="webapps"
            unpackWARs="true" autoDeploy="false"
            xmlValidation="false" xmlNamespaceAware="false">
        <Context docBase="${catalina.base}/webapps/ROOT" path="" reloadable="true" backgroundProcessorDelay="3">
        </Context>
      </Host>
    </Engine>

  </Service>
</Server>

  • 한글 인코딩 처리를 위해서 Connector 태그에 URIEncoding 속성을 지정했다
  • 톰켓 문서에서는 Context 설정은 별도 파일에 하는 것을 권장하지만 한두개의 애플리케이션을 배치할 때는 굳이 그럴 필요성을 느끼지 못한다. ROOT 디렉토리를 명시적으로 설정하였다. 개발시에는 Context 태그의 reloadable 속성을 true로 설정한다.


4. 로그 설정 정리

전에는 log4j를 선호했지만 지금은 자바 라이브러리를 줄이는 쪽에 가중치를 준다. 그래서 자바 표준 라이브러리에 있는 로그 모듈을 사용한다. 톰켓도 기본 설정이 그렇다.

conf/logging.properties 파일로 로그 설정을 하는데 관리 애플리케이션을 지웠기 때문에 이 파일에 그 내용을 반영해야 한다. 그렇지 않으면 무의미한 로그 파일이 만들어진다.

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.

2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler

No comments: