You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Tomcat远程部署后Servlet返回404但本地正常问题

远程Tomcat Servlet 404问题排查与解决

你的问题核心是web.xml配置错误加上类路径不匹配,导致Servlet无法被Tomcat正确初始化,具体问题点和修复方案如下:

1. Servlet定义与映射不匹配

web.xml中第二个<servlet>节点的名称是TestServlet,但对应的<servlet-mapping>却使用了不存在的TestServletTwo作为名称,导致/test-two路径找不到对应的Servlet实例。

2. 类包名不一致

web.xml里配置的servlet-class是com.example.servlets.TestServlet,但实际TestServlet.java的包名是com.fourdcontrols.servlets,包名不匹配会让Tomcat找不到对应的class文件,直接引发404。

3. 重复定义Servlet节点

web.xml里重复定义了名称为TestServlet的<servlet>节点,这会导致容器初始化时出现混乱,干扰Servlet的正常加载。

4. 无效的contextPath配置

<context-param>中的contextPath参数对Tomcat完全无效,应用的上下文路径由war包名称(比如你的test-api.war对应/test-api)或server.xml中的<Context>配置决定,这个配置可以直接删除。


修正后的web.xml示例

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0">

  <display-name>Test API</display-name>

  <!-- 正确定义TestServlet,包名与代码保持一致 -->
  <servlet>
    <servlet-name>TestServlet</servlet-name>
    <servlet-class>com.fourdcontrols.servlets.TestServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/test</url-pattern>
  </servlet-mapping>

  <!-- 为/test-two路径配置对应的Servlet(需确保TestServletTwo类存在) -->
  <servlet>
    <servlet-name>TestServletTwo</servlet-name>
    <servlet-class>com.fourdcontrols.servlets.TestServletTwo</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>TestServletTwo</servlet-name>
    <url-pattern>/test-two</url-pattern>
  </servlet-mapping>

</web-app>

额外注意事项

  • 确保war包中WEB-INF/classes/com/fourdcontrols/servlets/路径下存在TestServlet.class和TestServletTwo.class文件,否则即使配置正确也会找不到类。
  • 如果你使用@WebServlet注解(代码中已有@WebServlet("/test")),可以选择去掉web.xml中的对应Servlet配置,避免重复配置引发冲突;若保留web.xml配置,建议统一使用XML方式管理所有Servlet映射。

内容的提问来源于stack exchange,提问作者Stewart LloydJones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:55:29