エンタープライズ:特集 2002/12/09 18:00:00 更新

Tomcatで知るJSP/サーブレットの基礎
第3回:Tomcatで動かすWebアプリケーションの仕組み (3/6)

コンテキストの作成手順

 次に、「/etc/tomcat4/」ディレクトリ(/var/tomcat4/confディレクトリでも同じ)にある「server.xml」ファイルを書き換え、上記で作成した「sample」ディレクトリの内容をWebアプリケーションとして実行できるようコンテキストを追加しよう。

TIPS
標準設定の「server.xml」ファイル内には、先に画像4で見たサンプルファイルへのコンテキストの設定も含まれる。よって本運営を行う際には、標準のserver.xmlファイルのまま利用しないことが望ましい。本運営時には、サンプルへのコンテキストが含まれていないserver.xmlファイルの雛形であるserver-noexamples.xml.configファイルを、適時編集したものをserver.xmlファイルとして利用するとよいだろう。

 「server.xml」ファイル内の記述は、やや長くて分かりづらいかもしれない。標準では、次のように、<Host name="localhost">と、</Host>で囲まれた個所があるはずだ。

<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
...中略...
</Host>

 この</Host>の直前には、次のようにContextエレメントを追記する。

<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
…中略…
<!-- 追加-->
<Context path="/sample" docBase="/var/tomcat4/webapps/sample" debug="0"
reloadable="true"/>
<!-- 追加ここまで-->
</Host>

 ここでの「Contextエレメント」は、URLのパスとWebアプリケーションとのマッピングを行い、コンテキストを定義するためのものだ。「pathアトリビュートで指定されたURLがクライアントから要求された際、docBaseアトリビュートで指定されたディレクトリをWebアプリケーションとして実行せよ」という設定になる。

 上記の追記により、「http://[サーバ名またはIPアドレス]:8080/sample/」というURLが要求された場合、作成された「/var/tomcat4/webapps/sample/」ディレクトリ内容がWebアプリケーションとして実行可能になる。

TIPS
pathアトリビュートで指定するURLとdocBaseアトリビュートで指定するディレクトリ名との関係はなく、別の名前を使ってもよい。例えば、docBaseアトリビュートで自分のホームディレクトリを指定しても構わない(ただし、Tomcat4ユーザー/Tomcat4グループがアクセスできるようディレクトリの権限が設定されていることを確認しよう)。

TIPS
上記の設定では、docBaseアトリビュートにフルパスで指定している。しかし、相対パスで指定することも可能だ。相対パスで指定した場合には、CATALINA_HOME(標準では、/var/tomcat4)からの相対ディレクトリとなる。

 ちなみに、「reloadable="true"」の定義はファイルに変更を加えた際、自動的に再読み込みするためのものだ。「reloadable="true"」でなければ、該当ディレクトリ内のファイルを書き換えてもTomcatを再起動しない限り自動的に反映されない。この点には注意したい。

 ただし、「reloadable="true"」を指定すると、TomcatがJSPやサーブレットを実行する場合に最新のファイルであるかどうかどうかをチェックされる。このために、パフォーマンスが落ちてしまう。「reloadable="true"」指定は開発時のみに限るようにし、開発が終わって実際の運用に入ったならば、「reloadable="false"」としたほうがよい。

 server.xmlファイルを書き換えた場合、設定を反映させるためにTomcatデーモンを再起動させる。

# /etc/rc.d/init.d/tomcat4 restart

前のページ | 1 2 3 4 5 6 | 次のページ

[大澤文孝,ITmedia]