Spring Boot 3.3.1+JDK21启动报错:找不到jakarta.servlet.Filter.class
问题分析与解决方案
核心原因
你的项目中spring-boot-starter-tomcat和jakarta.servlet-api都设置了scope=provided,本地运行Spring Boot应用时,这些依赖不会被加入类路径,导致Spring无法找到jakarta.servlet.Filter.class,进而处理CORSFilter配置类时抛出I/O失败异常。
另外,Spring Boot 3.x已全面切换到Jakarta EE规范(取代旧Java EE),手动引入jakarta.servlet-api可能和spring-boot-starter-web自带的Servlet API版本冲突。
解决步骤
1. 调整Maven依赖配置
修改pom.xml中的以下依赖:
- 移除
spring-boot-starter-tomcat的scope=provided,让本地运行时能加载内嵌Tomcat:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </dependency> - 删除手动引入的
jakarta.servlet-api依赖,因为spring-boot-starter-web已包含适配Spring Boot版本的Servlet API:<!-- 移除该依赖 --> <!-- <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>5.0.0</version> <scope>provided</scope> </dependency> -->
2. 修正CORSFilter类的导入
确保你的CORSFilter类使用Jakarta EE的Filter接口,替换旧的javax.servlet导入:
import jakarta.servlet.Filter; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.ServletRequest; import jakarta.servlet.ServletResponse; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; // 示例CORSFilter实现 public class CORSFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse res = (HttpServletResponse) response; HttpServletRequest req = (HttpServletRequest) request; res.setHeader("Access-Control-Allow-Origin", "*"); res.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization"); if ("OPTIONS".equalsIgnoreCase(req.getMethod())) { res.setStatus(HttpServletResponse.SC_OK); } else { chain.doFilter(request, response); } } }
3. 清理并重建项目
执行以下Maven命令清理缓存并重新构建:
mvn clean install
重启IDE,确保新依赖被正确加载后,重新运行Spring Boot应用。
内容的提问来源于stack exchange,提问作者Ishani Samaraweera
相关产品推荐
相关产品推荐

