327604 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

Das Tagebuch von Judith

Das Tagebuch von Judith

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Profile

liebejudith

liebejudith

Calendar

Favorite Blog

LEVEL UP☆ROOM まゆき8360さん
アレグロ モルト Allegro Moltoさん
piano弾きの見る風景… ayaya!さん
クラシック音楽リス… Tsuboneさん
食いだおれピアノ食堂 にゃんぴん。さん
 *** kunnelの食と… kunnelさん
meg's Diary lune28さん

Headline News

August 26, 2007
XML
カテゴリ:仕事
Tomcat5.5.23で、アプリケーション/META-INF/context.xml に書いた
path属性が無視されてしまい、どうしてもコンテキストパスが
warファイル名(アプリケーションのディレクトリ名)になってしまう、という現象について。

結論から言うと、warファイル一発デプロイでコンテキストパスを指定するのは不可能です。
Tomcat5.5.23ではアプリケーション/META-INF/context.xml に
path属性を書いても無視されます。これは仕様です。
さらに、$CATALINA_HOME/conf/[enginename]/[hostname]/に置いた
{アプリ名}.xmlにpath属性を書いても無視されます。
これも仕様です。

Tomcat5.0では、これらのコンテキスト設定ファイルにpath属性を
書くと、warファイル名(アプリケーションのディレクトリ名)と
path属性に書いた値の両方がコンテキストパスとして登録されました。
 ※これはこれで、JNDIリソースのルックアップ等で問題があったのですが。

Tomcat5.5.3からは、path属性の値はserver.xmlに<Context>要素を
直接書いた場合にのみ有効になるように変更になったようです。
(下記change log参照)
http://tomcat.apache.org/tomcat-5.5-doc/changelog.html#Tomcat%205.5.3%20(yoavs)
「When parsing a context file, ignore the "path" attribute:
the only place where it is acceptable is in server.xml. (remm)」
とあります。

で、server.xmlをいじらずにwarファイル名やディレクトリ名とは
違ったコンテキストパスをつけたい場合にはどうするかというと、
$CATALINA_HOME/conf/[enginename]/[hostname]/に
[コンテキストパス].xml という名前でファイルを作成すると、
このファイル名からコンテキストパスが導き出されるようです。
コンテキストパスに"/"(スラッシュ)を含めたい場合は#で置換します。
 (例)/foo/barというコンテキストパスをつけたい場合はfoo#bar.xml
さらに、アプリケーションのリソースはappBase(デフォルトでは$CATALINA_HOME/webapps)
に置いてはダメで、他の任意の場所に配置し、コンテキスト設定ファイルには
docBase属性を書いてきちんと絶対パスで指定する必要があります。

この辺は下記のデプロイに関するドキュメントを見てもわからず、
http://tomcat.apache.org/tomcat-5.5-doc/deployer-howto.html#A%20word%20on%20Contexts
こちらのcontext.xmlに関するドキュメントを見ると少し書いてあります。
http://tomcat.apache.org/tomcat-5.5-doc/config/context.html

やはりユーザには混乱を招いているようで、
Apacheのbugzillaにもこんなのがありました。
http://issues.apache.org/bugzilla/show_bug.cgi?id=32222


まぁ、コンテキストパスはコンテナが決めることで
アプリが決めることではないってことなのでしょう・・・

ちなみに、この仕様はTomcat6にも引き継がれています。


※あっちが開店休業状態なのでやっぱりこっちに書きました・・・
 こういうのって自分のメモ代わりとしても有効なんですよね。。。





お気に入りの記事を「いいね!」で応援しよう

Last updated  August 26, 2007 07:24:37 PM
[仕事] カテゴリの最新記事



© Rakuten Group, Inc.