はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> Webサーバ >> サーバサイドJAVAの導入(Tomcat4編)
動作確認 [ FC2 ] 当該ページは凍結しました
  1. tomcatとは・・・
  2. tomcatのインストール
  3. tomcatの設定
  4. tomcatの起動
  5. OSの再起動を行なった時にtomcatを自動的に起動するように設定する
  6. tomcat動作の確認
    サーブレットの動作確認
    JSPの動作確認
  7. ドキュメントの格納場所
    デフォルトドキュメントパス
    ドキュメントパスの変更・追加
  8. 公開前の準備

■ tomcatとは・・・

Jakartaプロジェクトのサブプロジェクトとして開発されているオープンソースのソフトウェアで、Javaサーブレット・JSPを処理するアプリケーションサーバです。
Tomcatは単独でWebサーバとして動作できるそうだがApacheのプラグインと動作できるようになっており、実際にはプラグインとしての利用が主流となっているそうです。

■ tomcatのインストール

tomcatのインストール
# yum -y install tomcat

ApacheとTomcatの連携モジュールをインストール
# yum -y install mod_jk2

■ tomcatの設定

環境ファイルの編集
# vi /etc/profile

以下を追加します。
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export TOMCAT_HOME=/usr/share/tomcat
export CATALINA_HOME=/usr/share/tomcat
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/common/lib

編集した環境ファイルを反映させる
# source /etc/profile

設定ファイルの編集
# vi /usr/share/tomcat/conf/web.xml
    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.DefaultServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
ディレクトリの内容が表示されてしまうのを防ぐ
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

サーブレットクラスをJRE(Java実行環境)のクラスライブラリへコピー 
# cp /usr/share/tomcat/common/lib/servlet.jar $JAVA_HOME/jre/lib/ext/

Apache連携でサーブレットとJSPがInternal Server Errorとなってしまうことの対処
# vi /etc/httpd/conf/workers2.properties
[shm:]
#info=Scoreboard. Required for reconfiguration and status with multiprocess servers
#file=${serverRoot}/logs/jk2.shm
#size=1000000
#debug=0
disabled=1

■ tomcatの起動

apache(httpd)を再起動する
# /etc/rc.d/init.d/httpd restart
httpdを停止中:                                             [  OK  ]
httpd を起動中:                                            [  OK  ]

tomcatを起動する
# /etc/rc.d/init.d/tomcat start
tomcat を起動中:                                           [  OK  ]

OSの再起動を行なった時にtomcatを自動的に起動するように設定する』を行なった場合は、サービスの起動順番は「apache(httpd)」→「tomcat」となりますので、気にする必要はありません。

■ OSの再起動を行なった時にtomcatを自動的に起動するように設定する

起動時にtomcatを起動する
# chkconfig tomcat on
設定内容を確認
# chkconfig --list tomcat
tomcat          0:オフ  1:オフ  2:オン  3:オン  4:オン  5:オン  6:オフ

■ tomcat動作の確認

■ サーブレットの動作確認

クライアントより[http://サーバのアドレス/examples/servlets/]でアクセスして下記の様な画面が表示されれば動作しています。

■ JSPの動作確認

クライアントより[http://サーバのアドレス/examples/jsp/]でアクセスして下記の様な画面が表示されれば動作しています。

■ ドキュメントの格納場所

■ デフォルトドキュメントパス

■ ドキュメントパスの変更・追加

tomcatでは、基本的に「/usr/share/tomcat/webapps/」がドキュメントのルートになっています。
例えば、サーブレットのサンプルが"examples"になっていました。[http://サーバのアドレス/examples/servlets/]
これは、tomcatの設定ファイル「/usr/share/tomcat/conf/server.xml」で以下の様に定義されています。

/usr/share/tomcat/conf/server.xmlの内容
        <!-- Tomcat Root Context -->
        <!--
        <Context path="" docBase="ROOT" debug="0"/>
        -->

        <!-- Tomcat Examples Context -->
        <Context path="/examples" docBase="examples" debug="0"
                 reloadable="true" crossContext="true">

サーブレットモジュールを作成し任意のアドレス(http://サーバのアドレス/fedora/servlet/)でアクセス出来る様にする。

tomcat設定ファイルにアドレスを定義する
# vi /usr/share/tomcat/conf/server.xml
        <!-- Tomcat Root Context -->
        <!--
        <Context path="" docBase="ROOT" debug="0"/>
        -->

        <Context path="/fedora" docBase="fedora" reloadable="true" crossContext="true">
        </Context>

        <!-- Tomcat Examples Context -->
        <Context path="/examples" docBase="examples" debug="0"
                 reloadable="true" crossContext="true">

servlet/以降へのアクセスはサーブレットとする
# 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>
-->
上記の <!-- と --> 部分を消す
        ↓↓↓↓↓
    <!-- The mapping for the invoker servlet -->

    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>

アドレスのfedora/以降はtomcatに認識させる
# vi /etc/httpd/conf/workers2.properties
[uri:/examples/servlet/HelloW]
info=Example with debug enabled.
debug=10
最終行以下に追加
[uri:/fedora/*]

パスを作成する
# mkdir /usr/share/tomcat/webapps/fedora/
# mkdir /usr/share/tomcat/webapps/fedora/WEB-INF/
# mkdir /usr/share/tomcat/webapps/fedora/WEB-INF/classes/

パスが長いのでカレントを移動
# cd /usr/share/tomcat/webapps/fedora/WEB-INF/classes/

サーブレットソースの作成
# vi TestServlet.java
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TestServlet extends HttpServlet {
  public void doGet(HttpServletRequest request,
    HttpServletResponse response)
      throws IOException, ServletException {
        response.setContentType("text/html; charset=EUC-JP");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Test Servlet</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("サーブレットのテスト");
        out.println("</body>");
        out.println("</html>");
        out.close();
    }
}

ソースのコンパイル
# javac TestServlet.java

クライアントより[http://サーバのアドレス/fedora/servlet/TestServlet]でアクセスして"サーブレットのテスト"と表示されれば動作しています。

JSPを作成し任意のアドレス(http://サーバのアドレス/fedora/jsp/)でアクセス出来る様にする。

サーブレットの設定(fedora/でアクセス)が完了している事を前提としています。

パスを作成する
# mkdir /usr/share/tomcat/webapps/fedora/jsp/

パスが長いのでカレントを移動
# cd /usr/share/tomcat/webapps/fedora/jsp/

JSPソースの作成
# vi TestJSP.jsp
<%@ page contentType="text/html;charset=EUC-JP" %>
<html>
    <head>
        <title>Test JSP</title>
    </head>
    <body>
<p>
<%
   String strJSP = "JSPのテスト";
   out.println(strJSP);
%>
</p>
    </body>
</html>

クライアントより[http://サーバのアドレス/fedora/jsp/TestJSP.jsp]でアクセスして"JSPのテスト"と表示されれば動作しています。

■ 公開前の準備

■ コンテンツ関連

■ その他

ページ先頭へ

Copyright(©)2004-2018 First home server construction. All Right Reserved.