2012年2月2日木曜日

Tomcat7 コンテキストの設定

よく忘れるので, メモ。

Tomcat では, アプリケーションごとに, Context と呼ばれる設定が必要になります。

Context は, アプリケーションのworkDir(ワーキングディレクトリ, jsp などのコンパイル先), docBase(アプリケーションのルート), path(アクセスするときのパス) などの設定をします。


Eclipse 上では, Window → Preference で, コンテキスト宣言モードとして,
server.xml もしくは, コンテキストファイル とあり, どちらでも動作させることができます。

上記のように, Eclipse 上で, Tomcat プラグインを入れている場合は, server.xml でもコンテキストディレクトリを指定しても, Tomcatプロジェクトを作るたびに, Context の設定をよしなにしてくれます。
(開発だけなら意識しなくてすみます)

実際に運用する場合などは, 自分でこのContext の設定必要になります。

では, いくつかの設定方法を 例をあげてみていきましょう。

1.  server.xml に書き込む
server.xml は, サーバまわりの設定(port, ssl, host) などを書くファイルです。Tomcat 起動時に必ず読み込まれます。

このserver.xml にコンテキストの設定を書きます。 <Host> </Host> の中に書きます。

<Context workDir="C:\eclipse\workspace\applicationname\work" docBase="C:\eclipse\workspace\applicationname" reloadable="true" path=""/>

2. で詳しい説明をします

2. コンテキストディレクトリをつくりそこに配置(アプリケーションの名前でアクセス)
以下の位置に Context ファイルを配置します。
TOMCAT_HOME\conf\Catalina\localhost\applicationname.xml

TOMCAT_HOME       : Tomcatのinstall ディレクトリ
Catalina                  : Engine名(server.xmlに記述)
localhost                 : Host名(server.xmlに記述)
applicationname.xml  : Applicationの名前.xml (Eclipse でいうプロジェクトの名前でもつけとくとよい)

applicationname.xml には以下を記述します



<?xml version="1.0"?>
<Context reloadable="true"
              workDir="C:\eclipse\workspace\ applicationname \work"
              docBase="C:\eclipse\workspace\applicationname"
              path="applicationname"/>


workDir  :  ワーキングディレクトリ, ここにコンパイルされたJSPなどを展開する
docBase :  コンテキストルート, Eclipse でいうプロジェクトのフォルダ
reloadable : ソースに変更があった場合に, 自動的にtomcatをリロードするか
path      :  アクセスする際のURLトップ

このアプリケーションの場合
http://localhost:8080/application/

でapplicationname のトップにアクセスできます。


※この設定は任意です。Eclipse の コンテキストディレクトリのところで変更可能です。


3. コンテキストディレクトリをつくりそこに配置(ルートアプリを設定)

2.とほとんど変わりませんが, applicationnameのところをなしにして, / でアクセスできるようにするためには,  ROOT.xml というファイルを作って, コンテキストを書く必要があります。

ROOT.xml というファイル名は Tomat7からのようです。


4. warファイルを配置する


<Context
path=""
docBase="C:\war\app.war"
>


これで, c:\war\app.war を読み込みます









2 件のコメント:

  1. ※ROOT.xml というファイル名は Tomat7からのようです。

    Tomat5でも、ROOT.xmlを使っていましたので、
    / でアクセスはTomat5から使用可能でした。

    返信削除
  2. ご指摘ありがとうございます。
    Tomcat5.5 のとき別のやり方をやっていた気がして書いていましたが, Docを確認いたしましたら,おっしゃるとおりでした。Tomcat5でもROOT.xml で間違いないです。ありがとうございます。

    返信削除