特定のWAR(たとえばabc.war)をTomcatのデフォルトのWebアプリとして構成する方法を説明するスレッドを確認しました。
どちらか
Abc.warの名前をROOT.warに変更します。
または
$ {Tomcat.home}/conf/Catalina/localhostにコンテキストROOT.xmlを作成し、path = ""とdocBaseをwarへの相対パス/絶対パスに設定します(二重展開を避けるために、abc.warをwebappsの外側に保持します)。
どちらのソリューションでも、webapps(appBase)ディレクトリにROOT.warが作成されます。ただし、WebアプリケーションでWAR名(abc.war)を保持し、これを実現するための個別のROOT.warは必要ありません。
私の場合に機能した1つの解決策は、server.xmlの<Host>タグの下にコンテキストを追加することでした。ただし、 Tomcat 7 Doc に従って、server.xmlに直接コンテキストを追加することはお勧めしません。
誰かが私に別の方法を教えてもらえますか?
ありがとう。
詳細なアプローチ
最初の方法:
最初にTomcatを[binディレクトリ(
sh shutdown.sh
)から]シャットダウンしてから、Tomcat webappsフォルダ(rm -fr *
)のすべてのコンテンツを削除してから、WARファイルの名前をROOT.war
に変更し、最後にTomcat [binディレクトリから(sh startup.sh
)]
2番目の方法:
warファイルを
CATALINA_BASE/webapps
に元の名前のまま残します。server.xmlファイルのHost要素でautoDeployとdeployOnStartupをオフにします。パスとdocBaseの両方を指定して、server.xmlですべてのアプリケーションコンテキストを明示的に定義します。これを行う必要があるのは、Tomcatの自動デプロイメカニズムをすべて無効にしたためです。Tomcatは、server.xmlでコンテキストを見つけない限り、アプリケーションをデプロイしません。
注意:
この最後の方法は、アプリケーションに変更を加えるために、Tomcatを停止して再起動する必要があることも意味しています。
3番目の方法:
Warファイルを
CATALINA_BASE/webapps
の外側に配置します(二重展開を防ぐには外側に配置する必要があります)。 -ROOT.xml
という名前のコンテキストファイルをCATALINA_BASE/conf//
。このコンテキストファイルの単一の要素には、warファイルの場所を指すdocBase属性が必要です。パス要素は設定しないでください。xmlファイルの名前(この場合はROOT.xml
)から派生しています。詳細については、上記のコンテキストコンテナを参照してください。