サーブレットのコンパイルとTomcatのテスト

本章のプログラムを御覧の際には、Tomcatが必要です。
こちらからダウンロード出来ます。

ファイルはzipフォルダに納められています。
解凍ソフト(Aladdin Expander等)を使って解凍して下さい。

フォルダの指定

「HelloServlet.class」を入れたTomcatの「classes」フォルダには、既に沢山のファイルが有ります。
此から作っていくプログラムと混ざったり、コンパイルの度に毎回此のフォルダにコピーするのも面倒なので、自分専用のファイルを作り、其処でコンパイルも実行も出来る様にしたい物です。

作業用フォルダの作成

下記の様に「javasrc」フォルダ内に「yoyaku」フォルダを作り、此のフォルダを作業用フォルダにする事にしましょう。

C:\javasrc\yoyaku

そして、此のフォルダ内にファイルを以下のURLでアクセス出来る様に設定する事にします。

http://localhost:8080/yoyaku/

先ず、フォルダとアドレスを結び付ける為のTomcatの設定を行います。
「yoyaku.xml」と言う名前のファイルをTeraPadやメモ帳等のテキストエディタで以下の様に作成し、下記のフォルダに保存して下さい。

C:\Program Files\Apache Software Foundation\Tomcat 5.0\conf\Catalina\localhost

設定の確認

其れでは先ず「C:\javasrc」の「yoyaku」フォルダが、

http://localhost:8080/yoyaku/

でアクセス出来るかどうかテストしてみましょう。
以下の様なHTMLファイルをテキストエディタで作成し、「yoyaku」フォルダの直下に入れます。
ブラウザを起動して、URLに

型 メソッド名(仮引数)throws 例外クラス{
        メソッドの内容
}

と指定してみましょう。
正しく表示されれば成功です。

サーブレットのテスト

次にサーブレットのテストをします。
「HelloServlet.class」を下記のフォルダに移動させましょう。

C:\javasrc\yoyaku\WEB-INF\classes

ブラウザを起動して、URLに、

FileInputStream in = new FileInputStream(args[0]);
FileOutputStream out = new FileOutputStream(args[1]);

と指定してみましょう。
正しく表示されれば成功です。

ソース ダウンロード
HelloServlet.java HelloServlet01.zip

Tomcatの設定ファイル

@server.xml

Tomcatのサーバとしての基本動作を設定する物で、以下の要素が入れ子になっています。

要素 概説
Server サーバ全体
必ず1つだけ存在
Service Server要素の中に1つ以上存在し、ConnectorとEngineとを結びつける
Connector サーバとクライアントの間の通信を制御
ポートを割り当て
1つのServiceの中に複数個置け、此により、1つのTomcatで複数のポートを使い分けられる
Engine クライアントからの要求を処理するコンテナ
1つのServiceの中に1つだけ置ける
Host 仮想ホスト
1つのEngineの中に複数個置け、此により、異なるネットワークを持てる
Host名は、Domain Name System(DNS)サーバに登録されている必要が有る(localhostは、自分のマシンを表すIPアドレス「127.0.0.1」に変換されるユニークな文字列で有り、登録が不要)
Host要素内では、アプリケーションファイル(HTMLやサーブレット等のファイル)を置く為の基準となるフォルダを「appBase」で指定

server.xmlの入れ子

デフォルトの「Server.xml」では、「Catalina」と言うServiceが、2つのConnectorと1つのEngine(名前は「Catalina」)を持っており、此のEngineの中に、仮想ホスト「localhost」が置かれています。
仮想ホストに置かれるファイルの位置は、

appBase = "webapps"

により、

Tomcat 5.0\webapps

に置かれた物が、

http://localhost:8080

でアクセス出来る事になります。

AContextの設定用XMLファイル

仮想ホストには、複数のContextを置けます。
Contextは、HTMLやサーブレット等のアプリケーションを置くパスを設定します。
Tomcat4迄は、「server.xml」ファイル内で設定していましたが、Tomcat5からは、Context毎に「.xml」ファイルを作る様に変更されました。
此のファイルは、以下のフォルダに置かれます。

Tomcat 5.0\conf\Service名\Host名

此処では、「Catalina」Service内の「localhost」Engine内に「yoyaku」と言うContextを設定するので、

Tomcat 5.0\conf\catalina\localhost

フォルダに「yoyaku.xml」と言うファイルを置きました。
此のファイルの中で、

docBase = "c:\javasrc\yoyaku"

により、Webアプリケーションファイルが実際に置かれるフォルダを指定します。
此処では、Tomcatフォルダの外にWebアプリケーションファイルを置きますので、絶対パス指定になっていますが、「Server.xml」の「appBase」で指定されたフォルダ(デフォルトでは「Tomcat 5.0\webapps」)内に置く場合には、

docBase = "yoyaku"

の様に相対パスでも書けます。
又、

path = "/yoyaku"

で、アドレスのパスを指定します。
此の設定により、docBase内のWebアプリケーションは、

http://localhost:8080/yoyaku

と言うアドレスで指定出来る様になります。

Bweb.xml

各パス内でのサーブレットを設定します。

<servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>HelloServlet</servlet-class>
</servlet>

と、

<servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/servlet/HelloServlet</url-pattern>
</servlet-mapping>

とでサーブレットをアドレスにマッピングします。

戻る