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 というファイルを作って, コンテキストを書く必要があります。
※
4. warファイルを配置する
<Context
path=""
docBase="C:\war\app.war"
>
これで, c:\war\app.war を読み込みます
※ROOT.xml というファイル名は Tomat7からのようです。
返信削除Tomat5でも、ROOT.xmlを使っていましたので、
/ でアクセスはTomat5から使用可能でした。
ご指摘ありがとうございます。
返信削除Tomcat5.5 のとき別のやり方をやっていた気がして書いていましたが, Docを確認いたしましたら,おっしゃるとおりでした。Tomcat5でもROOT.xml で間違いないです。ありがとうございます。