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

最終更新日: 2008.08.24

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

■概要

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


■Java開発実行環境構築

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

■Tomcatインストール

[root@linux root]# apt-get -y install tomcat ← tomcatインストール
※apt-getコマンドについてはパッケージ管理システム導入(Apt)を参照
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  commons-beanutils commons-collections commons-dbcp commons-digester
  commons-modeler commons-pool tomcat-libs
The following NEW packages will be installed:
  commons-beanutils commons-collections commons-dbcp commons-digester
  commons-modeler commons-pool tomcat tomcat-libs
0 upgraded, 8 newly installed, 0 removed and 0 not upgraded.
Need to get 5293kB of archives.
After unpacking 14.5MB of additional disk space will be used.
Get:1 http://ayo.freshrpms.net fedora/linux/2/i386/core commons-collections 2.1-12 [381kB]
Get:2 http://ayo.freshrpms.net fedora/linux/2/i386/core commons-beanutils 1.6.1-13 [192kB]
Get:3 http://ayo.freshrpms.net fedora/linux/2/i386/core commons-pool 1.1-3 [74.8kB]
Get:4 http://ayo.freshrpms.net fedora/linux/2/i386/core commons-dbcp 1.1-3 [210kB]
Get:5 http://ayo.freshrpms.net fedora/linux/2/i386/core commons-digester 1.4.1-13 [154kB]
Get:6 http://ayo.freshrpms.net fedora/linux/2/i386/core commons-modeler 1.0-8 [65.5kB]
Get:7 http://ayo.freshrpms.net fedora/linux/2/i386/core tomcat-libs 4.1.27-13 [2918kB]
Get:8 http://ayo.freshrpms.net fedora/linux/2/i386/core tomcat 4.1.27-13 [1298kB]
Fetched 5293kB in 42s (124kB/s)
Committing changes...
Preparing...                ########################################### [100%]
   1:commons-collections    ########################################### [ 13%]
   2:commons-beanutils      ########################################### [ 25%]
   3:commons-pool           ########################################### [ 38%]
   4:commons-dbcp           ########################################### [ 50%]
   5:commons-digester       ########################################### [ 63%]
   6:commons-modeler        ########################################### [ 75%]
   7:tomcat-libs            ########################################### [ 88%]
   8:tomcat                 ########################################### [100%]
Done.

[root@linux root]# apt-get -y install mod_jk2 ← mod_jk2(Apache/Tomcatコネクタ)インストール
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
  mod_jk2
0 upgraded, 1 newly installed, 0 removed and 0 not upgraded.
Need to get 74.7kB of archives.
After unpacking 146kB of additional disk space will be used.
Get:1 http://ayo.freshrpms.net fedora/linux/2/i386/core mod_jk2 4.1.27-13 [74.7kB]
Fetched 74.7kB in 5s (13.0kB/s)
Committing changes...
Preparing...                ########################################### [100%]
   1:mod_jk2                ########################################### [100%]
Done.

■Tomcat設定

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

[root@linux root]# source /etc/profile ← 環境変数を反映

(2)ファイル名を省略した場合にディレクトリ一覧を表示しないようにする
[root@linux root]# vi /usr/share/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 /usr/share/tomcat/common/lib/servlet.jar $JAVA_HOME/jre/lib/ext/ ← コピー

(4)Apache連携でサーブレット、JSPがInternal Server Errorとなってしまうことの対処
[root@linux root]# vi /etc/httpd/conf/workers2.properties ← Tomcat/Apache連携設定ファイル編集
[shm:]
#info=Scoreboard. Required for reconfiguration and status with multiprocess servers ← 行頭に#を追加(コメントアウト)
#file=${serverRoot}/logs/jk2.shm ← 行頭に#を追加(コメントアウト)
#size=1000000 ← 行頭に#を追加(コメントアウト)
#debug=0 ← 行頭に#を追加(コメントアウト)
#disabled=0 ← 行頭に#を追加(コメントアウト)
disabled=1 ← 追加
※FC2ではデフォルトでApacheとTomcatが連携するようになっている

■Tomcat起動

[root@linux root]# /etc/rc.d/init.d/httpd reload ← httpd再起動
httpd を再読み込み中:                                      [  OK  ]

[root@linux root]# /etc/rc.d/init.d/tomcat start ← tomcat起動
tomcat を起動中:                                           [  OK  ]

■Tomcat自動起動設定

[root@linux root]# chkconfig tomcat on ← tomcat自動起動設定

[root@linux root]# chkconfig --list tomcat ← tomcat自動起動設定確認
tomcat          0:オフ  1:オフ  2:オン  3:オン  4:オン  5:オン  6:オフ ← ランレベル2〜5のオンを確認

■Tomcat確認

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

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

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

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

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

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

      </Host>

    </Engine>

  </Service>

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

(4)/fedora/servlet/以降へのアクセスはサーブレットとする設定
[root@linux root]# vi /usr/share/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 reload ← tomcat再起動
tomcatを停止中:                                            [  OK  ]
tomcat を起動中:                                           [  OK  ]
[root@linux root]# /etc/rc.d/init.d/httpd reload ← httpd再起動
httpd を再読み込み中:                                      [  OK  ]

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

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

(1)サーブレットサンプルプログラムを作成する
サーブレットサンプルプログラムソース(ファイル名:HelloWorldServlet.java)
[fedora2@linux fedora2]$ 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)サーブレットサンプルプログラムをコンパイルする
[fedora2@linux fedora2]$ javac HelloWorldServlet.java
[fedora2@linux fedora2]$ 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ファイルをサーブレットクラスファイル格納ディレクトリへコピーする
[fedora2@linux fedora2]$ cp HelloWorldServlet.class /usr/share/tomcat/webapps/fedora2/WEB-INF/classes/

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

(5)JSPサンプルプログラムを作成する
JSPサンプルプログラムソース(ファイル名:HelloWorld.jsp)
[fedora2@linux fedora2]$ 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ファイル格納ディレクトリへコピー
[fedora2@linux fedora2]$ cp HelloWorld.jsp /usr/share/tomcat/webapps/fedora2/jsp/

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



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

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