目次へ

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で作成したサーブレットを実行できる状態にしなさい。

解答例はこちらから

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ