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

时间:2013-01-14 19:24:38

标签: tomcat web-applications tomcat7 war

我已经完成了描述如何在tomcat中将给定WAR(比如abc.war)配置为默认web-app的线程。

无论

  

将abc.war重命名为ROOT.war

  

在$ {tomcat.home} / conf / Catalina / localhost中使用path =“”创建上下文ROOT.xml,并将docBase设置为战争的相对/绝对路径(保留abc.war   在webapps之外,以避免双重部署。)

这两个解决方案都会在webapps(appBase)目录中生成ROOT.war。但是我想在webapps中保留WAR名称(abc.war),而没有单独的ROOT.war来实现这一点。

在我的案例中有效的一个解决方案是在< Host>下添加上下文。 server.xml中的标记。但是根据Tomcat 7 Doc,不建议直接在server.xml中添加上下文。

有人能指出我的替代方案吗?

感谢。

1 个答案:

答案 0 :(得分:19)

详细方法

第一种方法:

  

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

第二种方法:

  

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

注意:

  

这最后一个方法也意味着为了对任何一个做出任何改变   应用程序,您将不得不停止并重新启动Tomcat。

第三种方法:

  

将你的战争文件放在CATALINA_BASE/webapps之外(它必须在外面   防止双重部署)。 - 将一个名为ROOT.xml的上下文文件放在
中   CATALINA_BASE/conf//。这个上下文文件中的单个元素必须有一个   docBase属性指向war文件的位置。路径元素   不应该设置 - 它是从.xml文件的名称派生的   情况1}}。有关详细信息,请参阅上面的上下文容器。