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

Tomcat 10.1.6部署Web应用时遇jakarta.servlet.jsp.JspFactory类找不到问题求助

解决Tomcat 10.1.6中jakarta.servlet.jsp.JspFactory类找不到的问题

核心原因

jakarta.servlet.jsp.JspFactory属于Jakarta JSP API包,你的Maven依赖中缺少JSP API的依赖配置,同时手动放置JSTL jar的操作与Maven依赖管理存在冲突。

具体修复步骤

1. 调整Maven依赖配置

修改pom.xml,保留必要依赖并移除重复项:

<!-- Jakarta EE Web API(已包含Servlet、JSP、EL等核心API,无需单独重复引入) -->
<dependency>
    <groupId>jakarta.platform</groupId>
    <artifactId>jakarta.jakartaee-web-api</artifactId>
    <version>10.0.0</version>
    <scope>provided</scope>
</dependency>

<!-- JSTL实现依赖(Tomcat默认不包含,需打包到应用中) -->
<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>jakarta.servlet.jsp.jstl</artifactId>
    <version>3.0.1</version>
</dependency>
  • 移除单独的jakarta.servlet-api和jakarta.el-api依赖:jakarta.jakartaee-web-api已包含这些核心API,重复引入易引发版本冲突。
  • 去掉JSTL依赖的provided scope:Tomcat不内置JSTL实现,需将其打包到WEB-INF/lib。

2. 清理手动添加的Jar包

删除WEB-INF/lib目录下你手动放入的jakarta.servlet.jsp.jstl-3.0.1.jar和jakarta.servlet.jsp.jstl-api-3.0.0.jar,由Maven自动管理依赖打包,避免版本不一致或重复依赖问题。

3. 重新构建部署

  • 在Eclipse中执行Maven > Clean,再执行Maven > Install,确保依赖正确下载并打包。
  • 重新部署应用到Tomcat 10.1.6,启动服务器验证错误是否消除。

额外说明

Tomcat 10.1.x对应Jakarta EE 10规范,jakarta.jakartaee-web-api:10.0.0是匹配版本,确保所有依赖版本符合Jakarta EE 10要求,避免跨版本依赖引发类路径问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 15:43:22