在没有URL中的war名称的Tomcat上部署war

时间:2010-01-08 23:35:49

标签: deployment tomcat

我构建了一个名为myapp.war的war文件,并将其部署在Tomcat上。我已经将端口从8080更改为80,因此我可以在example.com/myapp(其中example.com是我的主机)上找到它。如何配置应用程序,以便当我访问example.com时,它会显示我的应用程序?我不想只是从example.com重定向到example.com/myapp - 我不想在URL中使用myapp。我是否必须设置Apache来为这样的页面提供服务,还是可以在Tomcat配置中使用虚拟主机来实现?

4 个答案:

答案 0 :(得分:8)

您需要做的就是为战争命名ROOT.war

答案 1 :(得分:4)

您没有必须设置Apache前端或在Tomcat中配置虚拟主机。相反,只需将您的webapp部署到“根上下文”即可。要执行此操作,请参阅Tomcat Wiki上的How do I make my web application be the Tomcat default application ?。他们描述了三种可能的方法,以便您能够找到最适合您需求的方法。

答案 2 :(得分:3)

以下是两种可能的方法:

  1. 将您的战争重命名为ROOT.war
  2. 无需重命名。转到CATALINA_BASE/conf/server.xml查找主机元素并设置autoDeploy="false" deployOnStartup="false",然后最后添加<Context path="" docBase="your_project_name"/>,如:
  3. expamle#2:

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="false" deployOnStartup="false"> 
    
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
        <Context path="" docBase="your_project_name"/><!--Add this-->
      </Host>
    

答案 3 :(得分:0)