サーブレット/JSPサーバー構築(Tomcat) for FC1

最終更新日: 2009.12.29

<<トップページ <<新着情報 <<質問BBS <<逆引き集 <<アンケート <<リンク集 <<サイト内検索 <<管理人へメール <<CentOSで自宅サーバー構築 <<新着情報 <<質問BBS <<逆引き集 <<アンケート <<リンク集 <<サイト内検索 <<管理人へメール <<CentOSで自宅サーバー構築 <<新着情報 <<質問BBS <<逆引き集 <<アンケート <<リンク集 <<サイト内検索 <<管理人へメール <<CentOSで自宅サーバー構築

■概要

サーバーサイドJavaアプリケーション(サーブレット/JSP)を実行するためのWebサーバー(Tomcat)。
TomcatはJ2SDK(Javaの開発実行環境)と連携してサーバー側でJavaアプリケーションを実行して結果をWebブラウザに返す。


■Java開発実行環境構築

Java開発実行環境を構築する(J2SDK)

■Tomcatインストール

(1)Tomcatダウンロード
  TomcatのバイナリファイルをJakartaのダウンロードページから/usr/local/src/へダウンロード

(2)Tomcatインストール
[root@linux root]# cd /usr/local/src/ ← /usr/local/srcディレクトリへ移動
[root@linux src]# tar zxvf /usr/local/src/jakarta-tomcat-4.1.29.tar.gz ← 解凍
[root@linux src]# mv /usr/local/src/jakarta-tomcat-4.1.29/ /usr/local/src/tomcat/ ← 解凍してできたディレクトリをリネーム(長いから)
[root@linux src]# mv /usr/local/src/tomcat/ /usr/local/ ← tomcatディレクトリを/usr/localディレクトリへ移動
[root@linux src]# rm -f /usr/local/src/jakarta-tomcat-4.1.29.tar.gz ← ダウンロードしたファイルを削除

■Tomcat設定

(1)環境変数にTomcatのパスを追加
[root@linux root]# vi /etc/profile ← 環境変数を編集
export TOMCAT_HOME=/usr/local/tomcat ← CLASSPATHの前行へ追加
export CATALINA_HOME=/usr/local/tomcat ← CLASSPATHの前行へ追加
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/common/lib ← 追加
[root@linux root]# source /etc/profile ← 環境変数を反映

(2)ディレクトリ一覧を表示しないようにする
[root@linux root]# vi /usr/local/tomcat/conf/web.xml
<param-name>listings</param-name>
<param-value>true</param-value>
↓
<param-value>false</param-value> ← trueからfalseに変更

(3)サーブレットクラスをJRE(Java実行環境)のクラスライブラリへコピー
[root@linux root]# cp $CATALINA_HOME/common/lib/servlet.jar $JAVA_HOME/jre/lib/ext/ ← コピー

■Tomcat起動

[root@linux root]# /usr/local/tomcat/bin/startup.sh

■Tomcat確認

http://サーバーのIPアドレス:8080/examples/servlets/にアクセスしてServlet Examplesページが表示されることを確認
http://サーバーのIPアドレス:8080/examples/jsp/にアクセスしてJSP Examplesページが表示されることを確認

※Tomcatはポート番号8080で要求を待っているため、URLに8080を指定する必要がある

■Tomcat自動起動設定

(1)Tomcat起動スクリプト作成
[root@linux root]# vi /etc/rc.d/init.d/tomcat
#!/bin/sh
#
# Startup script for the tomcat
#
# chkconfig: 345 80 15
# description: Tomcat is a Servlet+JSP Engine.

# Source function library.
. /etc/rc.d/init.d/functions

export JAVA_HOME=/usr/java/j2sdk1.4.2_04
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$JAVA_HOME/bin

case "$1" in
'start')
        if [ -f /usr/local/tomcat/bin/startup.sh ]; then
            echo "Starting the tomcat service "
            "/usr/local/tomcat/bin/startup.sh"
        fi
        ;;
'stop')
        echo "Stopping the tomcat service."
        "/usr/local/tomcat/bin/shutdown.sh"
        ;;
'restart')
        $0 stop
        $0 start
        ;;
*)
        echo "Usage: $0 {start|stop|restart}"
        ;;
esac
exit 0

(2)Tomcat起動スクリプトに実行権限付加
[root@linux root]# chmod +x /etc/rc.d/init.d/tomcat

(3)chkconfigへTomcat起動スクリプト追加
[root@linux root]# chkconfig --add tomcat

(4)Tomcat自動起動設定
[root@linux root]# chkconfig tomcat on
[root@linux root]# chkconfig --list tomcat
tomcat          0:オフ  1:オフ  2:オン  3:オン  4:オン  5:オン  6:オフ

■Apache連携

サーブレット/JSPを実行する際にポート番号8080をURLに指定しないでもApacheからTomcatに要求を流すようにする。

(1)Apache/Tomcat連携モジュールダウンロード
  Apache Jakarta ProjectのダウンロードページからApacheとTomcatを連携させるモジュール(mod_jk2-2.0.43.so)を/etc/httpd/modules/へダウンロード

(2)Apache/Tomcat連携モジュール組み込み
[root@linux root]# vi /etc/httpd/conf/httpd.conf
LoadModule jk2_module modules/mod_jk2-2.0.43.so ← 最終行へ追加

(3)workers2.propertiesというファイルを作成
[root@linux root]# vi /etc/httpd/conf/workers2.properties
[status:]
[uri:/jkstatus/*]
group=status:
[shm:]
disabled=1
[channel.socket:]
[ajp13:]
[uri:/examples/*]) ← /examples/へのアクセスはTomcatへ流す

(4)ポート8080のサービスを無効化
[root@linux root]# vi /usr/local/tomcat/conf/server.xml
<!-- ← 追加(コメントアウト開始)
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
           port="8080" minProcessors="5" maxProcessors="75"
           enableLookups="true" redirectPort="8443"
           acceptCount="100" debug="0" connectionTimeout="20000"
           useURIValidationHack="false" disableUploadTimeout="true" />
--> ← 追加(コメントアウト終了)

(5)Tomcat,Apache再起動(順番厳守!!)
[root@linux root]# /etc/rc.d/init.d/tomcat restart ← Tomcat再起動
[root@linux root]# /etc/rc.d/init.d/httpd restart ← Apache再起動

(6)Apache/Tomcat連携確認
http://サーバーのIPアドレス/examples/servlets/にアクセスしてServlet Examplesページが表示されることを確認
http://サーバーのIPアドレス/examples/jsp/にアクセスしてJSP Examplesページが表示されることを確認

■一般ユーザ用サーブレット/JSP格納場所作成

http://サーバーのIPアドレス/ユーザ名/servlet/サーブレット名でサーブレットを、
http://サーバーのIPアドレス/ユーザ名/jsp/JSP名でJSPを実行できるようにする。
 ※ここでは例として一般ユーザ名をfedoraとする

(1)一般ユーザ用サーブレット/JSP格納ディレクトリを作成
[root@linux root]# mkdir /usr/local/tomcat/webapps/fedora/
[root@linux root]# mkdir /usr/local/tomcat/webapps/fedora/WEB-INF/
[root@linux root]# mkdir /usr/local/tomcat/webapps/fedora/WEB-INF/classes/ ← サーブレット格納場所
[root@linux root]# mkdir /usr/local/tomcat/webapps/fedora/jsp/ ← JSP格納場所
[root@linux root]# chown fedora:fedora /usr/local/tomcat/webapps/fedora/ ← 所有者をfedoraに変更
[root@linux root]# chown fedora:fedora /usr/local/tomcat/webapps/fedora/WEB-INF/ ← 〃
[root@linux root]# chown fedora:fedora /usr/local/tomcat/webapps/fedora/WEB-INF/classes/ ← 〃
[root@linux root]# chown fedora:fedora /usr/local/tomcat/webapps/fedora/jsp/ ← 〃

(2)一般ユーザ用サーブレット/JSP格納ディレクトリをTomcat設定ファイルへ追加
[root@linux root]# vi /usr/local/tomcat/conf/server.xml

	<Context path="/fedora" ← 追加
	         docBase="fedora" ← 追加
	         reloadable="true" ← 追加
	         crossContext="true"> ← 追加
	</Context> ← 追加
</host>

(3)一般ユーザ用サーブレット/JSP格納ディレクトリをworkers2.propertiesへ追加
[root@linux root]# vi /etc/httpd/conf/workers2.properties
[uri:/fedora/*] ← /fedora/へのアクセスはtomcatへ流す

(4)/fedora/servlet/以降へのアクセスはサーブレットとする設定
[root@linux root]# vi /usr/local/tomcat/conf/web.xml
<!-- The mapping for the invoker servlet -->
<!-- ← この行を削除
<servlet-mapping>
    <servlet-name>invoker</servlet-name>
    <url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
--> ← この行を削除

(5)Tomcat,Apache再起動(順番厳守!!)
[root@linux root]# /etc/rc.d/init.d/tomcat restart ← Tomcat再起動
[root@linux root]# /etc/rc.d/init.d/httpd restart ← Apache再起動

■一般ユーザ用サーブレット/JSP格納場所での動作確認

以降の作業は一般ユーザで行う

(1)サーブレットサンプルプログラムを作成する
サーブレットサンプルプログラムソース(ファイル名:HelloWorldServlet.java)
[fedora@linux fedora]$ vi HelloWorldServlet.java
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorldServlet extends HttpServlet {
  public void doGet(HttpServletRequest request,
    HttpServletResponse response)
      throws IOException, ServletException {
        response.setContentType("text/html; charset=SHIFT_JIS");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello World</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<H1>Hello World</H1>");
        out.println("</body>");
        out.println("</html>");
        out.close();
    }
}
Hello Worldと表示するHTMLを生成してブラウザに返すサンプル

(2)サーブレットサンプルプログラムをコンパイルする
[fedora@linux fedora]$ javac HelloWorldServlet.java
[fedora@linux fedora]$ ls -al
合計 16
-rw-rw-r--    1 fedora fedora      425  3月 11 22:22 HelloWorldServlet.class ← classファイルが作成されていることを確認
-rw-rw-r--    1 fedora fedora      115  3月 11 22:22 HelloWorldServlet.java

(3)サーブレットのclassファイルをサーブレットクラスファイル格納ディレクトリへコピーする
[fedora@linux fedora]$ cp HelloWorldServlet.class /usr/local/tomcat/webapps/fedora/WEB-INF/classes/

(4)サーブレットサンプルプログラムを実行する
http://サーバーのIPアドレス/fedora/servlet/HelloWorldServletにアクセスしてサーブレットが動作することを確認

(5)JSPサンプルプログラムを作成する
JSPサンプルプログラムソース(ファイル名:HelloWorld.jsp)
[fedora@linux fedora]$ vi HelloWorld.jsp
<html>
<head><title>Hello World!</title></head>
<body>
<h1>Hello World!</h1>
<p>
<%
   String hello = "Hello World!";
   out.println(hello);
%>
</p>
</body>
</html>
Hello Worldと表示するHTMLを生成してブラウザに返すサンプル

(6)JSPサンプルプログラムをJSPファイル格納ディレクトリへコピー
[fedora@linux fedora]$ cp HelloWorld.jsp /usr/local/tomcat/webapps/fedora/jsp/

(7)JSPサンプルプログラム実行
http://サーバーのIPアドレス/fedora/jsp/HelloWorld.jspにアクセスしてJSPが動作することを確認



▲このページのトップへ戻る

LPIロゴ Copyright© 2004-2009 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします