首页 > 解决方案 > Tomcat 找不到 Java servlet 的开发版本

问题描述

我的项目有一个扩展HttpServlet. 在 ops 中,这个 servlet 正确响应对运行 Tomcat 6 的服务器的 AJAX 调用。调用的 URL 格式为host:port/App/Servlet(query-string).

我正在向 servlet 添加一个新的 AJAX 调用。我将servlet WAR 文件复制到Tomcatwebapps目录并反弹tomcat 服务。然后我运行我的项目(从 tcsh 脚本)。对 servlet 的调用现在返回 HTTP 404。

我在 Catalina 日志文件中看不到任何内容表明 servlet 甚至已启动,但没有关于为什么找不到它的错误消息。(我怀疑还有一些其他的日志设置需要调整,还有一些其他的日志文件需要查看。)

我与另一个运行原始 servlet 的开发服务器进行了交叉检查,它没有问题。

到 servlet 的路由出了什么问题,我该如何解决?

ETA1:servlet 有一个调用列表:Call1Call2等。我添加Call3到列表中并Call1尽可能多地重复使用该模式。现在两者都Call1返回Call3404 错误。

ETA2:我将 servlet WAR 文件从其他开发服务器(现有 AJAX 调用正常工作的地方)放到了这个开发服务器上。呼叫继续正常工作。虽然我确实注意到构建系统运行 JDK 1.7.0_51 而应用程序运行 JDK 1.7.0_71 的怪癖。我还复制了 AJAX 请求的 URL 并直接访问了该位置。使用现有的 servlet,我得到了一个非常正确的 AJAX 响应。使用我的开发版本,我得到了一个空白页面。

ETA3:我将根据评论的反馈澄清我的情况。

我的项目有一个 Java Web 应用程序。它本身就可以正常运行。

该应用程序将 AJAX 调用发送到 Java servlet。此 servlet 在操作中正常工作。此外,当我将发布版本复制到我的开发 Tomcat 6 服务器时,发布版本可以正常工作。

我向 servlet 添加了一个特性,并将 WAR 文件部署到开发 Tomcat 服务器。现在 Tomcat 抱怨它找不到 servlet (HTTP 404),即使是相同的调用和未修改的功能,它们曾经可以正常工作。

由于发行版在开发 Web 服务器上运行正常,我得出结论认为 Tomcat 本身运行正常。我还得出结论,URL 或端口没有问题。据我所知,Tomcat 要么无法启动 servlet,要么 servlet 在到达其构造函数之前失败。我没有找到会显示失败的日志文件或日志记录设置。

标签: javatomcatservletscentos

解决方案


推荐阅读