Sunday, August 26, 2007

Tomcat5.5 で Web アプリケーションの配備

Web アプリケーションを配備するために、$CATALINA_HOME/webapps/ に war ファイル(ベース名はコンテクストルート名になる)をおくか、コンテクストルートそのものを置く。もしくは、$CATALINA_HOME/conf/server.xml に次のような XML を記述してもいい。


<Context path="/LoaderSide" docBase="/home/kazu/ContextCommunication/LoaderSide/build/war/loader.war"
debug="0" privileged="true" crossContext="true">
</Context>

<Context path="/StoreSide" docBase="/home/kazu/ContextCommunication/StoreSide/build/war/store.war"
debug="0" privileged="true" crossContext="false">
</Context>


ここでは、コンテクストルート名が LoaderSideStoreSide という2つの Web アプリケーションを配備している。LoaderSide は crossContext 属性を true に設定しており、他の Web アプリケーションのコンテクスト情報にアクセスすることができるようになっている(Web アプリケーションにおけるコンテクスト間通信)。

ここまでは、Tomcat4 と同じ。だが、Tomcat4 では可能だった、コンテクストフラグメント XML を $CATALINA_HOME/webapps/ に置く方法はうまくいかなくなった。

Tomcat5 では、コンテクストフラグメント XML ファイルのベース名をコンテクストルート名と同じにして(4 ではベース名は何でもよかった)、$CATALINA_HOME/conf/Catalina/localhost/ に置かないといけない。先の例だと、LoaderSide.xml と SoreSide.xml ファイルをそれぞれ作って、配備してやることになる。path 属性はあってもいいが、XML ファイルのベース名に指定したコンテクストルート名と食い違っているとまずいから、書かない方がいいだろう。

No comments: