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

Deployment 在URL中没有war名称的Tomcat上部署war,deployment,tomcat,Deployment,Tomcat,我构建了一个名为myapp.war的war文件,并将其部署在Tomcat上。我已将端口从8080更改为80,因此我可以在example.com/myapp访问它(其中example.com是我的主机) 如何配置应用程序,以便在我转到example.com时,它显示我的应用程序?我不想从example.com重定向到example.com/myapp——我不想在URL中包含myapp。 我是否必须设置Apache来服务这样的页面,或者我可以使用Tomcat配置中的虚拟主机来实现这一点?请查看。您不

我构建了一个名为
myapp.war
的war文件,并将其部署在Tomcat上。我已将端口从8080更改为80,因此我可以在
example.com/myapp
访问它(其中
example.com
是我的主机)

如何配置应用程序,以便在我转到
example.com
时,它显示我的应用程序?我不想从
example.com
重定向到
example.com/myapp
——我不想在URL中包含
myapp


我是否必须设置Apache来服务这样的页面,或者我可以使用Tomcat配置中的虚拟主机来实现这一点?

请查看。

您不必设置Apache前端或在Tomcat中为此配置虚拟主机。相反,只需将webapp部署到“根上下文”。为此,请参阅Tomcat Wiki上的。它们描述了三种可能的方法,以便您能够选择最适合您需要的方法。

您只需将war命名为ROOT。war以下是两种可能的方法:

  • 将您的war重命名为ROOT.war
  • 不需要重命名。转到
    CATALINA\u BASE/conf/server.xml
    查找主机元素并设置
    autoDeploy=“false”
    deployOnStartup=“false”
    然后在末尾添加
    ,如:
  • 解释2:

    
    
    不,这还不够,您需要先删除当前的默认应用程序(即删除根目录)才能使用此方法。事实并非如此,如果重新启动,Tomcat将扩展WAR并覆盖根目录(适用于所有最新版本的Tomcat)。哦,真的,忘了我说的。但值得一提的是,它将被覆盖。这是真的。但是如果他以前不知道ROOT.war,那么他只是在那里得到了默认应用程序。
      <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>