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

Eclipse 2022-06报Java构建路径未找到HttpServlet错误

问题背景
  • 开发工具:Eclipse IDE for Enterprise Java and Web Developers 2022-06 (4.24.0)
  • 运行适配:基于Jakarta类库开发,适配Tomcat 10运行环境
  • POM中JSTL依赖配置:
<!-- JSTL Jakarta 实现 -->
<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>jakarta.servlet.jsp.jstl</artifactId>
    <version>2.0.0</version>
</dependency>
  • 报错现象:所有引入taglib的JSP文件都提示错误:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path,当前使用的taglib引入代码:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
  • 排查现状:已经尝试过多种公开修复方案,包括调整项目构建路径、关联服务器运行时等常见操作,前后耗时2天排查未解决,但项目在本地Tomcat环境及生产服务器上均可正常运行。
修复步骤

报错核心原因是Eclipse内置的JSP静态校验器无法识别旧版JSTL URI到Jakarta命名空间的兼容映射,默认拉取旧Java EE规范下的javax.servlet.http.HttpServlet类,和项目实际使用的Jakarta EE 9+的jakarta.servlet包不匹配,按以下顺序操作即可解决:

  1. 替换JSTL标签库URI为Jakarta官方标准地址,旧的http://java.sun.com/jsp/jstl/*是Java EE时代的遗留地址,仅靠运行时容器兼容支持,静态校验无法识别,替换后代码如下:
<%@taglib uri="jakarta.tags.core" prefix="c"%>
<%@taglib uri="jakarta.tags.xml" prefix="x"%>
<%@taglib uri="jakarta.tags.fmt" prefix="fmt"%>
<%@taglib uri="jakarta.tags.functions" prefix="fn"%>
  1. 校验项目关联的运行时配置:右键项目打开Properties面板,进入Targeted Runtimes配置页,勾选本地配置的Tomcat 10运行时,取消勾选所有Tomcat 9及以下版本的运行时,点击Apply保存。
  2. 清理校验缓存:右键项目选择Validate触发全量校验,校验完成后点击顶部菜单栏Project -> Clean,选中当前项目执行清理操作。
  3. 排查依赖冲突:打开POM文件的依赖树视图,排查是否存在javax.servlet、javax.servlet.jsp.jstl相关的旧版Java EE依赖,如果存在直接添加排除规则,确保项目构建路径中仅存在scope为provided的jakarta.servlet-api相关依赖。
  4. 强制更新Maven项目:右键项目进入Maven -> Update Project菜单,勾选Force Update of Snapshots/Releases选项,点击OK等待更新完成即可。

以上操作完成后Eclipse中的JSP报错会直接消除,不会影响项目原有运行逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 13:54:23