사용자 도구

사이트 도구


service:was:tomcat

문서의 이전 판입니다!


Tomcat

CentOS 5 에서 설치하기

CentOS 5 에서 yum 을 이용해서 Tomcat 5.5 를 설치하면, gcj(Java 1.4.2) 가 기본으로 설치된다.
이 때문에 Java 1.5 이상에서 지원되는 새로운 기능들(Annotation, Generics, Boxing 등)을 사용할 수 없게 된다.
그러므로, Sun Microsystems 에서 직접 JDK 를 다운로드 받아서 설치하도록 한다.
현 시점(2008-03-20)에서 JDK 의 최신버전은 1.6 Update 5 이다. 파일명은 jdk-6u5-linux-i586-rpm.bin 이다.
해당 파일을 다운로드 받은 후 chmod 로 실행권한을 준 후에 실행하면 파일이 풀리면서 RPM 파일이 자동으로 설치된다.
설치된 JDK 는 /usr/java/jdk1.6.0_05 에 위치하며, /usr/java/default, /usr/java/latest 에 소프트 링크가 걸린다.
환경 변수 JAVA_HOME=/usr/java/default 를 설정하고, 아래와 같이 결과가 나오면 정상 설치된 것이다.

# java -version
java version "1.6.0_05"
Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)

yum 을 이용해서 설치한 Tomcat 5.5 를 새로 설치한 java 1.6_5 로 실행되게 설정하면, 여러 jar 파일들이 없다고 메시지를 뿌린다.
일일이 찾아서 설치해 줄수도 있겠지만, 상당히 번거롭기 때문에 Tomcat 5.5 를 별도로 다운로드 받아서 설치하도록 하자.
http://tomcat.apache.org/download-55.cgi 에서 최신버전(5.5.26)을 받는다. 파일 이름은 apache-tomcat-5.5.26.tar.gz 이다.
이 파일을 /opt 에 복사한 후 아래와 같이 압축을 풀고 디렉토리 이름을 바꾸기만 하면 설치 완료이다.

# tar xvfz apache-tomcat-5.5.26.tar.gz 
# mv apache-tomcat-5.5.26 tomcat

Tomcat 을 실행하려면 아래와 같이 실행한다.

# cd /opt/tomcat/bin
# ./startup.sh

Debian 에서 비해서 상당히 번거롭게 설치를 해야 되고, 부팅시 자동 시작도 지원되지 않는다.

Deian Linux (Etch) 에서 Apache 2.2 와 Tomcat 5.5 설치(연동)

Sun JDK 1.5 설치

sources.list 파일에 non-free 를 추가한다.

# vi /etc/apt/sources.list
deb http://ftp.kr.debian.org/debian/ etch main non-free
deb-src http://ftp.kr.debian.org/debian/ etch main non-free

deb http://security.debian.org/ etch/updates main contrib non-free
deb-src http://security.debian.org/ etch/updates main contrib non-free

패키지 목록을 업데이트하고 설치한다.

# apt-get update
# apt-get install sun-java5-jdk sun-java5-fonts
# vi /etc/profile
export JAVA_HOME="/usr/lib/jvm/java-1.5.0-sun"
export PATH=$JAVA_HOME/bin:$PATH

# source /etc/profile
# java -version
java version "1.5.0_14"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
Java HotSpot(TM) Client VM (build 1.5.0_14-b03, mixed mode, sharing)

Apache 2.2 and Tomcat 5.5 설치

# apt-get install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps libapache2-mod-jk apache2 apache2-utils

Apache 2.2 의 Virtual Host 설정에서 아래와 같이 해준다.

# mkdir /opt/project_name/web/WEB-INF
# cd /etc/apache2/sites-available
# vi project_name
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName test.com
    ServerAlias www.test.com
    DocumentRoot /opt/project_name/web
</VirtualHost>

# a2ensite project_name

Tomcat 5.5 의 Virtual Host 설정을 아래와 같이 해준다.

# cd /etc/tomcat5.5
# vi server.xml

...
      <!-- test.com -->
      <Host name="test.com" debug="0" appBase="" unpackWARs="true" autoDeploy="true">
        <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="test.com_" suffix=".log" timestamp="true"/>
        <Context path="" docBase="/opt/project_name/web" debug="0">
          <Resources className="org.apache.naming.resources.FileDirContext" allowLinking="true" />
        </Context>
      </Host>
...

# /etc/init.d/tomcat5.5 restart

/etc/init.d/tomcat5.5 를 열어서 아래와 같이 수정해준다.

TOMCAT5_SECURITY=no

Apache 2.2 + Tomcat 5.5 연동

# vi /etc/libapache2-mod-jk/workers.properties
workers.tomcat_home=/usr/share/tomcat5.5
workers.java_home=/usr/lib/jvm/java-1.5.0-sun

# cd /etc/apache2
# cp /usr/share/doc/libapache2-mod-jk/httpd_example_apache2.conf mods-available/jk.conf
# ln -s /etc/apache2/mods-available/jk.conf mods-enabled/jk.conf
# /etc/init.d/apache2 restart

이후에 /opt/project_name/web 디렉토리에 test1.html 과 test2.jsp 파일을 작성하여 브라우저에서 테스트해본다.

Connection Pool 설정하기

  1. JDBC Driver 를 $CATALINA_HOME/common/lib 에 복사한다.
  2. server.xml 의 <Context> 태그 안쪽에 다음을 추가한다.
              <Resource name="jdbc/DBName"
                        auth="Container"
                        type="javax.sql.DataSource"
                        driverClassName="com.mysql.jdbc.Driver"
                        loginTimeout="10"
                        maxWait="5000"
                        username="아이디"
                        password="비밀번호"
                        testOnBorrow="true"
                        url="jdbc:mysql://localhost:3306/디비이름" />
  3. web.xml 에 다음을 추가한다.
        <resource-ref>
            <description>MySQL DB Connection</description>
            <res-ref-name>jdbc/DBName</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
        </resource-ref>
  4. JSP 코드를 다음과 같이 작성한다. 관련 DB와 테이블은 작성되어 있어야 합니다.
    <%@ page contentType="text/html;charset=utf-8" session="true" %>
    <%@ page import="java.sql.*" %>
    <%@ page import="javax.sql.*" %>
    <%@ page import="javax.naming.*" %>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>테스트</title>
    </head>
    <body>
    <%
    DataSource   ds = null;
    Connection conn = null;
    Statement  stmt = null;
    ResultSet    rs = null;
    
    try {
        Context initCtx = new InitialContext();
        Context envCtx = (Context) initCtx.lookup("java:comp/env");
        ds = (DataSource) envCtx.lookup("jdbc/DBName");
        conn = ds.getConnection();
        stmt = conn.createStatement();
        rs  = stmt.executeQuery("select code_class_id, code_class_name from tb_code_class");
        while(rs.next()) {
            out.println("Code Class ID: " + rs.getString("code_class_id"));
            out.println(", Code Class Name: " + rs.getString("code_class_name") + "<br />");
        }
        rs.close();
        stmt.close();
        conn.close();
    } catch (Exception e) {
        out.println("<br /><font color='red'>SQL Exception: " + e + "</font><br/>");
    }
    %>
    </body>
    </html>
  5. JSTL 을 이용하는 경우에는 $CATALINA_HOME/common/lib 에 standard.jar, jstl.jar 파일을 복사하고 코드를 다음과 같이 작성합니다.
    <%@ page contentType="text/html;charset=utf-8" session="true" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    
    <sql:query var="rs" dataSource="jdbc/DBName">
    select code_class_id, code_class_name from tb_code_class
    </sql:query>
    
    <html>
      <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <title>테스트</title>
      </head>
      <body>
    
    <c:forEach var="row" items="${rs.rows}">
        ID ${row.code_class_id}<br/>
        Name ${row.code_class_name}<br/><br/>
    </c:forEach>
    
      </body>
    </html>

한글문제 해결책

참고사이트

service/was/tomcat.1213747343.txt.gz · 마지막으로 수정됨: 2008/06/18 09:02 저자 gauryan