我遍历了描述如何将给定WAR(例如abc.war)配置为tomcat中默认Web应用程序的线程。
要么
将abc.war重命名为ROOT.war
在$ {tomcat.home} / conf / Catalina / localhost中创建上下文ROOT.xml,将path =“”和docBase设置为war的相对/绝对路径(将abc.war保留在webapp外部以避免双重部署)。
两种解决方案都在webapps(appBase)目录中生成ROOT.war。但是,我想在Webapps中保留WAR名称(abc.war),并且没有单独的ROOT.war来实现。
对于我而言,一种可行的解决方案是在server.xml的标记下添加上下文。但是根据Tomcat 7 Doc,不建议直接在server.xml中添加上下文。
有人可以指出我另一种选择吗?
谢谢。
详细方法
第一种方法:
首先[从bin目录(sh shutdown.sh)关闭tomcat,然后必须删除tomcat webapps文件夹的所有内容(rm -fr *),然后重命名WAR文件以ROOT.war最终[从bin目录(sh startup.sh)] 启动tomcat。
sh shutdown.sh
rm -fr *
ROOT.war
sh startup.sh
第二种方法:
将war文件保留为,保留CATALINA_BASE/webapps其原始名称- 在server.xml文件的Host元素中关闭autoDeploy和deployOnStartup。在server.xml中显式定义所有应用程序上下文,同时指定path和docBase。您必须这样做,因为您已禁用了所有Tomcat自动部署机制,并且Tomcat将不再部署您的应用程序,除非它在server.xml中找到了它们的上下文。
CATALINA_BASE/webapps
注意:
最后一种方法还意味着,为了对任何应用程序进行任何更改,您都必须停止并重新启动Tomcat。
第三种方法:
将您的war文件放在外面CATALINA_BASE/webapps(必须放在外面以防止重复部署)。-将命名上下文的文件ROOT.xml在 CATALINA_BASE/conf//。此上下文文件中的单个元素必须具有docBase属性,该属性指向您的war文件的位置。不应设置path元素- 在这种情况下,它是从.xml文件的名称派生的ROOT.xml。有关详细信息,请参见上面的上下文容器。
将您的war文件放在外面CATALINA_BASE/webapps(必须放在外面以防止重复部署)。-将命名上下文的文件ROOT.xml在
ROOT.xml
CATALINA_BASE/conf//。此上下文文件中的单个元素必须具有docBase属性,该属性指向您的war文件的位置。不应设置path元素- 在这种情况下,它是从.xml文件的名称派生的ROOT.xml。有关详细信息,请参见上面的上下文容器。
CATALINA_BASE/conf//