- 1.1. サーブレットの特徴
- 1.2. 簡単なサーブレットクラス
- 1.3. サーブレットの設定
- 1.4. コンテナの設定
1.4. コンテナの設定
最後にコンテナの設定を行います。これによって、コンテナにWebアプリケーションの存在を知らせます。Tomcat4の設定ファイルはインストールディレクトリの「conf/server.xml」にあります。これはおおよそ以下のような形式になっています。
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<Service name="Tomcat-Standalone">
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8080" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="20000"
useURIValidationHack="false"/>
<Engine name="Standalone" defaultHost="localhost" debug="0">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="catalina_log." suffix=".txt"
timestamp="true"/>
<Realm className="org.apache.catalina.realm.MemoryRealm" />
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log."
suffix=".txt" pattern="common" />
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true" />
<Context path="/sample" docBase="/home/tomcat/sample" reloadable="true">
</Context>
</Host>
</Engine>
</Service>
...
</Server>
ここでまず重要なものは3行目の<Connector>タグです。<Connector>タグで「protocolHandlerClassName」属性が無いものはHTTPプロトコルを取り扱うもので、Tomcat4を単独で動作させる(WWWサーバーとしても動作させる)場合に使用されるものです。この例では「port="8080"」とあるので、8080番ポートで接続を受け付けることになります。以下はその際のURLです。
http://{ServerName}:8080/
次に注目するのは12行目の<Host>タグです。「name」属性が「localhost」となっているものに注目してください。「appBase」ディレクトリはWWWアプリケーションを置くディレクトリを指定しています。サンプルの場合、Tomcatの「webapps」ディレクトリにアプリケーションを置く(リンクでも構わない)と、自動的にアプリケーションを認識させることができます。例えば「webapps」というディレクトリに「SampleApp」というディレクトリを作成し、それ以下にアプリケーションを置くと、
http://{ServerName}:8080/SampleApp/
というURLがWebアプリケーションに割り当てられます。しかし通常はアプリケーション毎に細かい指定を行いたいので、20行目にある<Context>タグを使用します。
<Context>タグの「path」属性は、WebアプリケーションのルートURLを明示的に指定します。サンプルの場合は以下のURLが、WebアプリケーションのルートURLになります。
http://{ServerName}:8080/sample/
「docBase」属性はWebアプリケーションがあるディレクトリを示します。相対パスで記述すると、<Host>タグのappBase属性で指定されたディレクトリからの相対パスとなります。絶対パスで記述することも可能です。サンプルの場合は、「/home/tomcat/sample」にWebアプリケーションがあることを示しています。「reloadable」属性はサーブレットのクラスファイルが更新されたときに、自動的にサーバーにリロードさせるかどうか指定します。開発中は「true」にしておくのが適当です。
以上でサーブレットに関する設定は完了です。サーバーの設定ファイルを編集した場合は、サーバーを再起動させる必要があります。これまでの設定が正しく行われていると、
http://{ServerName}:8080/sample/hi
というURLで作成したサーブレットを実行させることができます。サーブレットを実行させるURLをまとめると、以下のようになります。「Webアプリケーションのルートパス」はコンテナの設定で行います。「<servlet-mapping>で指定したURL」はweb.xmlで設定を行います。
http://{ServletName}:8080/{Webアプリケーションのルートパス}/{<servlet-mapping>で指定したURL}
(実習課題3)
実習課題1・2で作成したサーブレットを実行できる状態にしなさい。

