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

Posted

技术标签:

【中文标题】在tomcat 7中设置默认应用程序【英文标题】:Setting default application in tomcat 7 【发布时间】:2012-12-28 19:26:20 【问题描述】:

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

要么

将 abc.war 重命名为 ROOT.war

在 $tomcat.home/conf/Catalina/localhost 中创建一个上下文 ROOT.xml,path="" 和 docBase 设置为战争的相对/绝对路径(保留 abc.war 在 webapps 之外避免双重部署)。

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

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

有人能指点我一个替代方案吗?

谢谢。

【问题讨论】:

我在 server.xml 的 Host 标签中继续使用 wiki.apache.org/tomcat/…参考这个你可以得到完整的答案 查看网址***.com/questions/5638787/default-web-app-in-tomcat 对于遇到这个问题的任何人,试试这个(它对我有用):***.com/a/9162565/2133965 【参考方案1】:

详细方法

第一种方法:

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

第二种方法:

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

注意:

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

第三种方法:

将你的war文件放在CATALINA_BASE/webapps之外(它必须在外面 以防止双重部署)。 - 在CATALINA_BASE/conf// 中放置一个名为ROOT.xml 的上下文文件。此上下文文件中的单个元素必须具有 docBase 属性指向你的war 文件的位置。路径元素 不应设置 - 它源自 .xml 文件的名称,在此 案例ROOT.xml。有关详细信息,请参阅上面的上下文容器。

【讨论】:

请记住,使用第三种方法,war 文件不会部署到 webapps 文件夹,假设您在 server.xml 中保留了默认值。此外,如果您有 myApp.war 并且希望上下文根为 /foo/bar,您可以将 xml 文件命名为 foo#bar.xml 我已经尝试了您的第三种解决方案,但它对我不起作用。我的应用名称是springExample,我把它放在C:\Tomcat\springExample.war 下,如上所述,在webapps DIR 之外。然后我在C:\Tomcat\conf\Catalina\localhost\ROOT.xml 中创建了一个ROOT.xml 文件。ROOT.xml 的内容是<?xml version="1.0"?> <Context reloadable="true" path="" docBase="springExample"/>。并重新启动服务器。请告诉我哪里做错了。 我设法通过更改 docBase attribute value to <Context reloadable="true" path="" docBase="C:\Tomcat\springExample"/> 使其工作。但是你现在能告诉我Tomcat 在哪里提取这个war 文件吗?可以通过Tomcat app manager web interface管理吗。谢谢... 如果我们可以为第二种和第三种解决方案提供示范,那将非常有帮助 为第三种方法添加示例

以上是关于在tomcat 7中设置默认应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Openshift Tomcat 7 (JBOSS EWS 2.0) 中设置休眠 MySQL 连接?

在 Tomcat 中设置 CORS 标头

在tomcat7 maven插件中设置ENV变量

如何在Laravel 7中设置全局的Carbon格式?

如何使用 django 1.7.3/postgres 迁移在数据库中设置默认列值?

如何在提供平台以运行不同语言代码的Web应用程序的tomcat中设置Java安全策略[重复]