Revised: 26th/Apr./2008; Since: 25th/Nov./2002
Tomcat は Sun Microsystems の Servlet 仕様、JSP 仕様の reference implementation です。すなわち、Tomcat に準拠する製品が Servlet/JSP サポートを謳えるのです。逆に言うと、Tomcat 上で動作するアプリケーションは Servlet/JSP 仕様に準拠している必要があります。Servlet 仕様には、コーディングの規格だけでなく、それをアプリケーション・サーバで稼動させるためのディレクトリ構成も決められています。ウェブ・アプリケーションは特定のディレクトリ階層を持っていなければならないのです。
*.html
, *.jsp
, etc. - (X)HTML、 CSS、画像、JavaScript、JSPなどの、クライアントから見えるコンテンツは、ドキュメント・ルート直下に置く。HTTP サーバの場合と同様、任意のサブ・ディレクトリを作っても良い。/WEB-INF/web.xml
- デプロイメント・デスクリプタ (DD: Deployment Descriptor)。サーブレットなどのコンポーネントの構成ファイル。利用可能なサーブレットのリスト、初期化パラメタ、セキュリティ設定、クライアントからのアクセス・パス(URLパターン)など、当該ウェブ・アプリケーションの設定を行う。/WEB-INF/classes/
- このディレクトリ配下に、当該ウェブ・アプリケーションに属する Java のクラス・ファイル、利用するリソースを格納する。パッケージ化している場合は、このディレクトリ配下に対応するサブ・ディレクトリ階層を作ることになる。com.mycompany.mypackage.MyServlet
ならば、ドキュメント・ルート配下の /WEB-INF/classes/com/mycompany/mypackage/MyServlet.class
となる。/WEB-INF/lib/
- JAR (Java ARchive) ファイルを格納する。JDBC ドライバやサードパーティ提供のパッケージは、専らここに格納することになるだろう。ドキュメント・ルートはどこに作ってもかまいません。例えば、 C:\java\DocRoot などのように作り、その配下に上記のディレクトリ構造を作ります。
図:C:\java\DocRoot\WEB-INF\classes |
web.xml
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 |
---|
要素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を任意のコンテキストパスで参照できるようになります。
SEO | [PR] !uO z[y[WJ Cu | ||