14

Tomcat で特定の WAR (abc.war など) をデフォルトの Web アプリとして構成する方法を説明するスレッドを確認しました。

また

abc.war の名前を ROOT.war に変更します

また

${tomcat.home}/conf/Catalina/localhost にコンテキスト ROOT.xml を作成し、path="" と docBase を war への相対/絶対パスに設定します (二重展開を避けるために abc.war を webapps の外部に保持します)。

どちらのソリューションでも、webapps (appBase) ディレクトリに ROOT.war が作成されます。ただし、webapps で WAR 名 (abc.war) を保持し、これを実現するために別の ROOT.war を持たないようにしたいと考えています。

私の場合に機能した解決策の 1 つは、 server.xml の <Host> タグの下にコンテキストを追加することでした。ただし、Tomcat 7 Docに従って、server.xml にコンテキストを直接追加することはお勧めしません。

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

ありがとう。

4

1 に答える 1

20

詳細なアプローチ

最初の方法:

最初に tomcat を [bin ディレクトリから ( )] シャットダウンしてから、sh shutdown.shTomcat webapps フォルダー ( ) のすべてのコンテンツを削除し、rm -fr *WAR ファイルの名前を変更して、[bin ディレクトリから ( )] ROOT.warTomcat を起動します。sh startup.sh

2 番目の方法:

war ファイルをCATALINA_BASE/webapps元の名前のまま .server.xml ファイルの Host 要素で autoDeploy と deployOnStartup をオフにします。パスと docBase の両方を指定して、server.xml ですべてのアプリケーション コンテキストを明示的に定義します。すべての Tomcat 自動展開メカニズムを無効にしており、Tomcat は server.xml で Context を検出しない限りアプリケーションを展開しないため、これを行う必要があります。

ノート:

この最後の方法は、アプリケーションを変更するには、Tomcat を停止して再起動する必要があることも意味しています。

3 番目の方法:

war ファイルを の外部に配置しますCATALINA_BASE/webapps(二重展開を防ぐために外部に配置する必要があります)。- という名前のコンテキスト ファイルを配置しROOT.xmlます
CATALINA_BASE/conf//。このコンテキスト ファイルの 1 つの要素には、war ファイルの場所を指す docBase 属性が必要です。path 要素は設定しないでください。この場合は、.xml ファイルの名前から派生しますROOT.xml。詳細については、上記のコンテキスト コンテナーを参照してください。

于 2013-01-16T07:36:55.173 に答える