이 페이지의 선택한 이전 버전과 현재 버전 사이의 차이점을 보여줍니다.
|
service:was:tomcat [2010/03/14 05:20] starlits |
service:was:tomcat [2010/08/06 11:17] (현재) starlits |
||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== Tomcat ====== | ====== Tomcat ====== | ||
| - | ===== CentOS 5 에서 설치하기 ===== | ||
| - | - CentOS 5 에서 yum 을 이용해서 Tomcat 5.5 를 설치하면, gcj(Java 1.4.2) 가 기본으로 설치된다.\\ 이 때문에 Java 1.5 이상에서 지원되는 새로운 기능들(Annotation, Generics, Boxing 등)을 사용할 수 없게 된다.\\ 그러므로, [[http://java.sun.com|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 를 설정하고__, 아래와 같이 결과가 나오면 정상 설치된 것이다. <code> | ||
| - | # 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) | ||
| - | </code> | ||
| - | - 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 에 복사한 후 아래와 같이 압축을 풀고 디렉토리 이름을 바꾸기만 하면 설치 완료이다. <code> | ||
| - | # tar xvfz apache-tomcat-5.5.26.tar.gz | ||
| - | # mv apache-tomcat-5.5.26 tomcat | ||
| - | </code> | ||
| - | - Tomcat 을 실행하려면 아래와 같이 실행한다. <code> | ||
| - | # cd /opt/tomcat/bin | ||
| - | # ./startup.sh | ||
| - | </code> | ||
| - | - Debian 에서 비해서 상당히 번거롭게 설치를 해야 되고, 부팅시 자동 시작도 지원되지 않는다. | ||
| - | + | - [[service:was:tomcat:centos5 | CentOS 5 에서 설치하기 ]] | |
| - | ===== Deian Linux (Etch) 에서 Apache 2.2 와 Tomcat 5.5 설치(연동) ===== | + | - [[service:was:tomcat:debian | Deian Linux (Etch) 에서 Apache 2.2 와 Tomcat 5.5 설치(연동)]] |
| - | + | - [[service:was:tomcat:dbpool | Connection Pool 설정하기 ]] | |
| - | ==== Sun JDK 1.5 설치 ==== | + | |
| - | - sources.list 파일에 non-free 를 추가한다. <code> | + | |
| - | # 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 | + | |
| - | </code> | + | |
| - | - 패키지 목록을 업데이트하고 설치한다. <code> | + | |
| - | # 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) | + | |
| - | </code> | + | |
| - | + | ||
| - | + | ||
| - | ==== Apache 2.2 and Tomcat 5.5 설치 ==== | + | |
| - | - apt를 통한 패키지 설치 <code> | + | |
| - | # apt-get install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps libapache2-mod-jk apache2 apache2-utils | + | |
| - | </code> | + | |
| - | - Apache 2.2 의 Virtual Host 설정에서 아래와 같이 해준다. <code> | + | |
| - | # 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 | + | |
| - | </code> | + | |
| - | - Tomcat 5.5 의 Virtual Host 설정을 아래와 같이 해준다. <code> | + | |
| - | # 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 | + | |
| - | </code> | + | |
| - | - /etc/init.d/tomcat5.5 를 열어서 아래와 같이 수정해준다. <code> | + | |
| - | TOMCAT5_SECURITY=no | + | |
| - | </code> | + | |
| - | + | ||
| - | ==== Apache 2.2 + Tomcat 5.5 연동 ==== | + | |
| - | - 설정파일 변경 <code> | + | |
| - | # 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 | + | |
| - | </code> | + | |
| - | - 브라우저를 통한 테스트 \\ 이후에 /opt/project_name/web 디렉토리에 test1.html 과 test2.jsp 파일을 작성하여 브라우저에서 테스트해본다. | + | |
| - | - http://test.com/test1.html | + | |
| - | - http://test.com:8180/test2.jsp | + | |
| - | - http://test.com/test2.jsp | + | |
| - | + | ||
| - | + | ||
| - | ===== Connection Pool 설정하기 ===== | + | |
| - | - JDBC Driver 를 $CATALINA_HOME/common/lib 에 복사한다. | + | |
| - | - server.xml 의 <Context> 태그 안쪽에 다음을 추가한다.<code xml> | + | |
| - | <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/디비이름" /> | + | |
| - | </code> | + | |
| - | - web.xml 에 다음을 추가한다.<code 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> | + | |
| - | </code> | + | |
| - | - JSP 코드를 다음과 같이 작성한다. 관련 DB와 테이블은 작성되어 있어야 합니다.<code> | + | |
| - | <%@ 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> | + | |
| - | </code> | + | |
| - | - JSTL 을 이용하는 경우에는 $CATALINA_HOME/common/lib 에 standard.jar, jstl.jar 파일을 복사하고 코드를 다음과 같이 작성합니다. <code> | + | |
| - | <%@ 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> | + | |
| - | </code> | + | |
| ===== 한글문제 해결책 ===== | ===== 한글문제 해결책 ===== | ||