Apache Tomcat将显示一个已完成的WAR文件,而不是位于localhost:8080的主页

问题描述

您好,我正在尝试通过战争档案将我的项目传递给我的教练。我已经制作了战争档案,并且正在尝试检查战争档案是否有效。但是,当我运行tomcat并在浏览器中输入localhost:8080时,将部署WAR文件而不是主页

启动命令提示符:

enter image description here

localhost:8080

enter image description here

我期望的是:

enter image description here

Apachetomcat Webapps文件夹:

enter image description here

解决方法

可能您正在使用由教师定制的tomcat版本。

默认情况下,当您从Internet上按原样下载Tomcat时,应创建一个WAR(例如calculator.war)并放入webapps文件夹中,然后您便可以通过localhost:8080/calculator访问它。这是默认行为,但仍然可以通过您描述的localhost:8080来部署自定义战争。

有两种方法可以这样做,但是在您的情况下,$CATALINA_HOME$\conf\server.xml中似乎有一个条目是这样的:

<Host name="localhost" appBase="webapps" unpackWARs="true"
  autoDeploy="false" deployOnStartup="false">
    <Context path="" docBase="Calculator"></Context>
     ....
</Host>

或者您有$CATALINA_HOME\conf\Catalina\localhost\ROOT.xml个文件 其中包含有关Calculator战争的信息。

要检查的另一个方向是,在IDE中,您不会在ROOT.war项目中创建Calculator。这也是一种在根上下文路径中部署内容的方法。

总的来说,我建议您阅读This tutorial,因为您可能会以某种方式使用这些部署方法之一。