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

Tomcat中出现java.lang.NoClassDefFoundError: jakarta/servlet/jsp/jstl/core/Config错误

解决Spring Boot 3 + Tomcat 10下JSTL依赖失效问题

你遇到的核心问题是依赖的JSTL版本与Tomcat 10、Spring Boot 3的Jakarta EE规范不兼容。

Tomcat 10及以上版本已经从Java EE迁移到Jakarta EE规范,所有API包名从javax.*改为jakarta.*,而你当前引入的是基于旧Java EE的JSTL依赖,自然无法在Tomcat 10环境中正常工作。

解决步骤:

  • 替换JSTL依赖
    把pom.xml中原来的JSTL依赖替换为Jakarta版本的:

    <dependency>
        <groupId>jakarta.servlet.jsp.jstl</groupId>
        <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
        <version>2.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.web</groupId>
        <artifactId>jakarta.servlet.jsp.jstl</artifactId>
        <version>2.0.0</version>
    </dependency>
    

    前者是API定义包,后者是具体实现包,两者配合才能让JSTL标签正常生效。

  • 验证JSP中的taglib声明
    确保JSP页面的taglib引用是Jakarta版本的:

    <%@ taglib prefix="c" uri="jakarta.tags.core" %>
    

    不要继续使用旧的http://java.sun.com/jsp/jstl/core地址。

  • 重新构建部署
    执行mvn clean package重新打包项目,部署到Tomcat 10中测试视图渲染。

补充说明:

Spring Boot 3.0.x本身基于Jakarta EE 9构建,和Tomcat 10的规范完全匹配,替换正确的依赖后,控制器返回视图时的JSTL相关错误就能解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 03:31:00