web-dev-qa-db-ja.com

Tomcat 7でのデフォルトアプリケーションの設定

特定の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に直接コンテキストを追加することはお勧めしません。

誰かが私に別の方法を教えてもらえますか?

ありがとう。

13
Manish Mulani

詳細なアプローチ

最初の方法:

最初に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)から派生しています。詳細については、上記のコンテキストコンテナを参照してください。

19
TheWhiteRabbit