部署WAR文件在Tomcat上给我一个404状态代码?

我对Tomcat很新。 我只是设法构建一个项目并将其导出为WAR文件。 我尝试手动将WAR文件复制到Tomcat文件夹,然后重新启动。 它创建了文件夹结构,但是当我尝试访问应用程序时,我得到了404状态代码。 我尝试通过Tomcat管理面板部署它,但我看到了相同的行为。 我做了什么从根本上错了吗?

假设您拥有Tomcat安装的完全权限,请尝试访问http://localhost:8080/manager/html/ ,如果您不知道进入该区域的密码,请查找tomcat-users.xml文件在你的${tomcat-installation}/conf目录中,应该有它。 如果它中没有条目,那么您将需要添加如下条目:

  

查看您的应用程序是否显示在该屏幕中,如果显示,请单击该链接,看看是否可以将您带到任何地方。 如果没有,那么我建议遵循ifishers的建议,并查看日志文件,看它是否列出任何错误。

但长话短说,很可能是因为项目的web.xml搞砸了

我最好的猜测是你没有在web.xml中配置欢迎文件。 如果你去/ app /你需要一些默认文件。 通常,人们要么创建了index.html,要么使用欢迎文件设置将用户指向正确的jsp。

我有同样的问题,我的问题是我通过sftp将文件直接复制到tomcat的webapps目录中,这可能导致轮询问题导致它无法正确部署。 Tomcat监视webapps dir,当它看到.xml它会破解并做它的事情,问题是可能还没有复制过所有内容。 🙁

最好创建一个暂存文件夹,将war移动或复制到该文件夹​​,然后使用linux mv命令将其移动到webapps中 – mv是primefaces级的,因此tomcat在操作完成之前不会执行任何操作。

魔法。

信用转到我在javarance上发现的非常随机的post,后者又导致: http ://pub.admc.com/howtos/tomcat/ch02.html#stagedir-section

希望这可以帮助别人:)

我也有同样的问题。 我的问题是我的应用程序名称和war文件名不同。 我已将war文件名更改为我的应用程序名称。

在这里,当您的应用程序部署时,tomcat会自动提取具有相同名称的war文件。 在我的情况下,我的服务名称是my-web-service(即https:// localhost:8080 / my-web-service / ),我的war文件名是MY-java-connector-0.0.1-SNAPSHOT.war(这个是我的项目文件夹名称)。 现在tomcat正在寻找my-web = service文件夹,它找到了epicor-java-connector-0.0.1-SNAPSHOT文件夹。 所以将文件夹重命名为my-web = service.war,它正在运行。

我也遇到了这个问题。

我简单的回旋解决方案是更改docBase路径。

出现问题时

 docBase=".../tomcat/webapps/app_name.war"; 

问题解决了

 docBase=".../tomcat/webapps/app_foldername/web" 

我遇到了与tomcat相同的问题,并通过强制我的IDE创建web.xml文件来修复它。 我失踪了。 它将部署该项目,但我仍然会得到404错误。 我阅读了其中几篇教程,但无济于事。 我在某处读到了需要正确配置web.xml文件的地方。 在WEB-INF文件夹中找到web.xml,没有文件夹,也没有web.xml文件。 我做了一个快速谷歌如何创建使用我的IDE,然后使用web.xml输出编译我的程序,它解决了我的问题。 希望有所帮助。 干杯!

FWIW我遇到了这个问题并通过发现我正在访问错误的主机来修复它,例如“ http:// wronghost:8080 / why_is_this_war_not_there ”所以如果它在catalina.out / localhost中说“XX.war已成功部署”。*。这可能是粉丝的暗示。

在最近的时间,如果JAVA_HOME指向Java的早期版本而不是WAR中的代码,则可能会出现这种情况。 在Tomcat的BIN目录中运行startup.bat之后,Tomcat可能会使用JAVA_HOME来确定它显示的JRE_HOME。 虽然Tomcat可能对它获得的Java版本感到满意,但对于应用程序而言,这可能还不够。 在我的例子中,Tomcat 8.0.49正在运行JDK1.7,而应用程序根本没有初始化(是的,它是一个Spring Boot应用程序,WAR正在解压缩,但这就是全部) – 没有给出任何错误。 将JAVA_HOME设置为JDK1.8的位置后,问题就解决了。

你试过了吗

 localhost:8080/app 

假设你的war文件是app.war?

编辑评论 – 然后你的web.xml搞砸了。