Tomcat 在所有新部署的 WAR 文件上报告 404 错误?

Posted

技术标签:

【中文标题】Tomcat 在所有新部署的 WAR 文件上报告 404 错误?【英文标题】:Tomcat reporting 404 error on all of newly deployed WAR files? 【发布时间】:2011-03-02 07:12:00 【问题描述】:

我通过将文件复制到目录中来将 WAR 文件部署到 $TOMCAT_HOME/webapps 中,就像我之前做过一千次一样。 Tomcat 检测到 WAR 并将其膨胀。我可以在命令行(它是 Fedora)上遍历我服务器上的目录树。

但是,当我在客户端机器的浏览器中处理 webapp 时,除了 404 错误,我什么也得不到。这发生在最近两次完全独立的 WAR 部署中。

第一个是替换现有的 WAR。我首先删除了 WAR 及其膨胀的目录,然后将其复制到膨胀的 WAR 中... 404。我再次删除了所有内容,从备份中放回以前工作的 WAR。它膨胀并起作用了。

第二个是一个全新的、从未部署过的 WAR……不过是 404。

其他 WAR 正在运行,但现在我害怕更改任何内容,直到我知道发生了什么。有什么线索吗?


编辑:从我的评论中您可以看到,在 Tomcat 部署 WAR 之后,日志中包含“严重:错误 listenerStart”。没有报告堆栈跟踪或其他错误。


Edit2:原来第二个 WAR 正在寻找 ELResolver,但找不到它。这被隐藏在 localhost 日志文件中。

【问题讨论】:

启动/错误日志中有什么内容? 信息:部署 Web 应用程序存档 shindig.war 2010 年 6 月 10 日上午 9:29:41 org.apache.catalina.core.StandardContext 开始严重:错误 listenerStart 2010 年 6 月 10 日 9:29:41 AM org.apache.catalina.core.StandardContext start SEVERE: Context [/shindig] startup failed due to previous errors 但没有“previous errors”。 存在必须以前的错误。 不,不一定。我见过这个错误 listenerStart 几次,总是没有以前的错误。我记得,这通常是一个类路径问题。 能分享一下tomcat日志文件的错误报告吗? 【参考方案1】:

您应该转到“服务器”选项卡并在“属性”上单击鼠标右键,然后按“切换位置”按钮。之后,您再次进行测试。让我知道它是否有效。 (参考:404 with tomcat / eclipse deployed webapp)。

【讨论】:

【参考方案2】:

去掉war文件,清理tomcat,启动,down,然后再放war。

ONTO:确保正确生成战争。

【讨论】:

【参考方案3】:

我在使用 Tomcat 时也遇到过这个问题。如果部署中没有错误,很可能,如果您在 Chrome 中打开 Web 控制台(开发人员工具 --> 控制台)或 Ctrl-Shift-I,它会说它正在搜索特定的丢失文件。

一旦你重新添加该文件(如果上述情况属实),Tomcat 应该可以正常工作。

【讨论】:

【参考方案4】:

如果 Web 应用程序未正确部署,您将得到 404。

您应该只删除 WAR 文件,然后让 Tomcat 删除膨胀的 war 文件夹本身。

ListenerError 可能是 web.xml 仍然引用了一个侦听器,它不在您要放入战争中的新代码中。

【讨论】:

或者监听器可能没问题,但是它所依赖的其他一些库丢失/有不同的版本左右。这个是相当调试的。 如果没有 index.html 我总是得到 404【参考方案5】:
    停止 Tomcat 只保留一个版本的war文件 删除膨胀的文件夹 从 tomcat 基本目录(或)CATALINA HOME 中删除“work”文件夹及其内容 重新启动 tomcat,现在测试应用程序。

【讨论】:

以上是关于Tomcat 在所有新部署的 WAR 文件上报告 404 错误?的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat没有自动部署war文件

在 tomcat 上部署 Spring Boot WAR 文件显示错误 404

Spring Boot War 文件部署在 Tomcat 上

Jenkins在tomcat上部署删除管理器和用户

项目如何部署到tomcat上?

在apache tomcat上部署war文件时未加载CSS和JS文件