我刚刚创建了我的 Web 项目(JSP/Servlets)的战争文件。
项目名称:TestApp
当我在 Tomcat 7 中部署它时,我会这样运行它:
localhost:8080/TestApp/或www.maypage.com/testApp/
好的,一切正常,但我需要在没有项目名称的情况下运行它,如下所示:
localhost:8080和托管www.maypage.com
我怎样才能做到这一点?谢谢你。
我正在完善具有该配置选项的 jsp/servlet 托管。你知道这样的托管吗?
为了在不使用应用程序名称的情况下访问您的应用程序,您需要将其部署为根应用程序。有多种方法可以实现它,相关的答案很好地描述了它。
从以上链接复制的内容:
第一种方法:
首先关闭你的 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。有关详细信息,请参阅上面的上下文容器。