トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

TomcatでのServlet実行環境構築方法

TomcatでのServlet実行環境構築方法

「Servlet」とは、Java言語で記述されたWebサーバーで動作するCGIのような位置づけです。サーバー上で動作するプログラムです。それを実行できるServletサーバーとして「Tomcat」というものが存在しています。

実行に必要なものは、Javaアプリケーション・アプレットの開発キットであるJava2SDK(J2SE1.4.x)、Servletサーバー「Tomcat 4.1.x」です。それぞれをまずインストールしてください。Java開発環境 J2SE1.4.xもインストールしておいてください。

Tomcatのダウンロードサイト
http://jakarta.apache.org/tomcat/index.html
Java関連のダウンロードサイト
http://java.sun.com/

Tomcatで実行用フォルダを作る

Tomcatをインストールしたディレクトリは、以下のような構成になっています。

[Tomcat 4.1]
  +[bin]
  +[common]
  ...
  +[webapps]
      +[examples]
      +[ROOT]
      +[tomcat-docs]
      +[webdav]

例えば、「http://localhost:8080/examples/servlet/HelloWorldExample」のようにサーブレットをWebブラウザから実行する場合は、実際のサーブレットのclassファイルは、「Tomcat 4.1\webapps\examples\WEB-INF\classes\HelloWorldExample.class」に存在することになります。

ここで、実行用のディレクトリを「mydir」として、この中に自分が作ったサーブレットプログラムを収める、とします。ディレクトリは、以下のように作成する必要があります。

[Tomcat 4.1]
  ...
  +[webapps]
      +[examples]
      +[ROOT]
      +[tomcat-docs]
      +[webdav]
      +[mydir]
        +[WEB-INF]
          +[classes]

このとき、「mydir」のディレクトリ内に、「WEB-INF」ディレクトリ(大文字英字で)を作成します。さらにその中に「classes」ディレクトリを作成します。この「classes」の中にコンパイル後のサーブレットのclassファイルを置くようにしてください。次に、「このディレクトリを追加した」ということを知らせるための1つのファイルの修正と、1つのファイルの追加が必要になります。

server.xmlの編集

「Tomcat 4.1\conf」内の「server.xml」に対し、「mydir」が追加された、という情報を加えます。「<Context path="/examples" docBase="examples"」の行を探して、これと同列の並びで以下の内容を加えます。

<Context path="/mydir" docBase="mydir" debug="0"
  reloadable="true" crossContext="true" trusted="false">
  <Logger className="org.apache.catalina.logger.FileLogger"
    prefix="localhost_mydir_log." suffix=".txt"
    timestamp="true"/>
</Context>

この場合、サーブレット実行などのときにエラーがあった場合「Tomcat 4.1\logs\localhost_mydir_log.日付.txt」のファイルに ログ情報が吐き出されることになります。以上を加えて、「server.xml」を保存します。

web.xmlの追加

作成したディレクトリ「mydir」内の、「mydir\WEB-INF」内に「web.xml」を作成します。内容は以下のような感じで記述します。

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

    <!-- ディレクトリの名称指定 -->
    <display-name>mydir set</display-name>
    <description>
      mydir servlets and JSP pages.
    </description>

    <!-- デフォルトのサーブレットマッピング -->
    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>

</web-app>

これで、「mydir」内の「WEB-INF\classes」にサーブレットのclassファイルを放り込むと、 すべてサーブレットとして認識されるようになります。

上記の設定を行った後、一度Tomcatのサービスを再起動してください。次は、サーブレットファイルの作成方法に入ります。

Servletファイルの作成方法

まず、Javaアプリの基本的なことですが、 Java(J2SE)をインストールしたディレクトリの[bin]にPATHを通しておいてください。後は、Tomcatとインストールしたディレクトリに「Tomcat 4.1\common\lib\servlet.jar」があることを確認してください。

「MyServlet.java」というファイルを作ります。

import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MyServlet 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 bgcolor=\"white\">");
        out.println("Hello World!!<br>");
        out.println("</body></html>");

        out.close();
    }
}

これは、ただ単にWebブラウザで「Hello World!」と表示させるだけのサンプルです。コンパイルは、「servlet.jar」をCLASSPATHに加えるようにして DOSプロンプトにて以下のように行います。

javac -classpath "D:\WinApp\Apache Group\Tomcat 4.1\common\lib\servlet.jar" MyServlet.java

これで、エラーなくコンパイルが完了すると「MyServlet.class」が生成されているはずです。これを、Tomcatの「Tomcat 4.1\webapps\mydir\WEB-INF\classes」に放り込んでください。

後は、Tomcatの起動を確認して、Webブラウザにて「http://localhost:8080/mydir/servlet/MyServlet」と指定すると、サーブレットが実行されることになります。

Tomcat Webアプリケーションマネージャ

http://localhost:8080/index.jsp」より開くページにて、「Tomcat Manager」を選択してください。ユーザー名「admin」・パスワード未記入(デフォルト)にて、管理ページにアクセスできます。もし、サーブレットが起動しないという場合は、「mydir」がここで実行中かどうか確認してみてください。falseの場合は、ログファイルにエラー情報が出ているはずです。

Future's Laboratory 技術格納庫 2004-2013 Yutaka Yoshisaka.