WARファイルの概要

Revised: 26th/Apr./2008; Since: 25th/Nov./2002

ディレクトリ階層

Tomcat は Sun Microsystems の Servlet 仕様、JSP 仕様の reference implementation です。すなわち、Tomcat に準拠する製品が Servlet/JSP サポートを謳えるのです。逆に言うと、Tomcat 上で動作するアプリケーションは Servlet/JSP 仕様に準拠している必要があります。Servlet 仕様には、コーディングの規格だけでなく、それをアプリケーション・サーバで稼動させるためのディレクトリ構成も決められています。ウェブ・アプリケーションは特定のディレクトリ階層を持っていなければならないのです。

ドキュメント・ルートはどこに作ってもかまいません。例えば、 C:\java\DocRoot などのように作り、その配下に上記のディレクトリ構造を作ります。

C:\java\DocRoot\WEB-INF\classes
図:C:\java\DocRoot\WEB-INF\classes

web.xml

web.xmlドキュメントルート/WEB-INF/web.xmlに配置します。

WEB-INF/web.xml
図:WEB-INF/web.xml

次の例は、"sample.war"のweb.xmlです。

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

    <display-name>Hello, World Application</display-name>
    <description>
	This is a simple web application with a source code organization
	based on the recommendations of the Application Developer's Guide.
    </description>

    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>mypackage.Hello</servlet-class>
    </servlet>

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

</web-app>

server.xml

以下、Tomcatのインストール・ディレクトリを${CATALINA_HOME}と表記することにします。

Tomcatの構成ファイルはserver.xmlです。server.xmlは"${CATASLINA_HOME}/conf/server.xml"にあります。このファイルには、基盤側の設定を記述します。we.xmlは、当該WARを開発した業務開発者が作成します。一方、server.xmlは、基盤開発者が、そのWARをどのようにデプロイしたいか、どのURLで参照させるかという、基盤的な設定を記述します。

server.xmlをテキスト・エディタで開いてみます。編集した場合はTomcatの再起動が必要です。

${CATALINA_HOME}/server.xml
図:${CATALINA_HOME}/server.xml

要素Hostがヴァーチャル・ホストです。要素Engineの子要素で、1つ以上任意の個数が許されます。そのうち一つの要素Hostは、属性nameに、要素Engineの属性defaultHostと同じ値を持つ必要があります。デフォルトでは、localhostがそれに当たります。

<Server>
  :
  <Service>
    :
    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">         
    --> 
    <Engine name="Catalina" defaultHost="localhost">
      :
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      :
      </Host>
    </Engine>
  </Service>
</Server>

ヴァーチャル・ホストを増やしたい場合は、要素Hostを増やします。一つのヴァーチャルホストに、ドキュメント・ベースを増やしたい場合は、そのHost要素の配下に要素Contextを記述します。任意のパス配下のWARを任意のコンテキストパスで参照できるようになります。



Copyright © 2002-2008 SUGAI, Manabu. All Rights Reserved.
SEO [PR] !uO z[y[WJ Cu