5

我刚刚创建了我的 Web 项目(JSP/Servlets)的战争文件。

项目名称:TestApp

当我在 Tomcat 7 中部署它时,我会这样运行它:

localhost:8080/TestApp/www.maypage.com/testApp/

好的,一切正常,但我需要在没有项目名称的情况下运行它,如下所示:

localhost:8080和托管www.maypage.com

我怎样才能做到这一点?谢谢你。

我正在完善具有该配置选项的 jsp/servlet 托管。你知道这样的托管吗?

4

1 回答 1

6

为了在不使用应用程序名称的情况下访问您的应用程序,您需要将其部署为根应用程序。有多种方法可以实现它,相关的答案很好地描述了它。

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

从以上链接复制的内容:

第一种方法:

首先关闭你的 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 之外(它必须在外面以防止双重部署)。- 在 CATALINA_BASE/conf// 中放置一个名为 ROOT.xml 的上下文文件。此上下文文件中的单个元素必须具有指向您的战争文件位置的 docBase 属性。不应设置路径元素 - 它源自 .xml 文件的名称,在本例中为 ROOT.xml。有关详细信息,请参阅上面的上下文容器。

于 2013-08-24T00:36:29.727 回答