在Tomcat上部署war文件并在没有项目名称的情况下运行

时间:2013-08-24 00:30:02

标签: java jsp tomcat servlets tomcat7

我刚刚创建了我的web项目的war文件(JSP / Servlets)。

项目名称:TestApp

当我在Tomcat 7中表达它时,我运行它:

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

好吧,一切正常,但我需要在没有项目名称的情况下运行它,就像那样:

localhost:8080 以及托管 www.maypage.com

我该怎么做? 谢谢。

我正在对jsp / servlet托管进行罚款,它具有该配置选项。你知道这样的托管吗?

1 个答案:

答案 0 :(得分:5)

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

Setting default application in 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,指定path和docBase。你必须这样做,   因为您已禁用所有Tomcat自动部署机制,并且   Tomcat将不再部署您的应用程序,除非找到它们   server.xml中的上下文。

     

注意:

     

这最后一个方法也意味着要进行任何更改   任何应用程序,您都必须停止并重新启动Tomcat。

     

第三种方法:

     

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