一尘不染

在tomcat 7中设置默认应用程序

tomcat

我遍历了描述如何将给定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中添加上下文。

有人可以指出我另一种选择吗?

谢谢。


阅读 360

收藏
2020-06-16

共1个答案

一尘不染

详细方法

第一种方法:

首先[从bin目录(sh shutdown.sh)关闭tomcat,然后必须删除tomcat webapps文件夹的所有内容(rm -fr *),然后重命名WAR文件以ROOT.war最终[从bin目录(sh startup.sh)] 启动tomcat。

第二种方法:

将war文件保留为,保留CATALINA_BASE/webapps其原始名称-
在server.xml文件的Host元素中关闭autoDeploy和deployOnStartup。在server.xml中显式定义所有应用程序上下文,同时指定path和docBase。您必须这样做,因为您已禁用了所有Tomcat自动部署机制,并且Tomcat将不再部署您的应用程序,除非它在server.xml中找到了它们的上下文。

注意:

最后一种方法还意味着,为了对任何应用程序进行任何更改,您都必须停止并重新启动Tomcat。

第三种方法:

将您的war文件放在外面CATALINA_BASE/webapps(必须放在外面以防止重复部署)。-将命名上下文的文件ROOT.xml

CATALINA_BASE/conf//。此上下文文件中的单个元素必须具有docBase属性,该属性指向您的war文件的位置。不应设置path元素-
在这种情况下,它是从.xml文件的名称派生的ROOT.xml。有关详细信息,请参见上面的上下文容器。

2020-06-16