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

Spring Boot3迁移遇TypeNotPresentException:javax.servlet.HttpServletRequest缺失

Spring 6迁移中javax.servlet.http.HttpServletRequest缺失异常解答

问题根源

你遇到的异常并非来自最新Spring Core,而是旧版本的spring-plugin-core-2.0.0.RELEASE导致的。这个版本的spring-plugin-core基于javax.servlet API开发,完全没适配Spring 6/Spring Boot 3要求的Jakarta EE命名空间变更。而Spring 6已经彻底把所有javax相关API替换成jakarta开头的包,所以当旧版spring-plugin-core尝试加载javax.servlet.http.HttpServletRequest时,JVM找不到这个类,就抛出了TypeNotPresentException。

为什么和Spring Core无关

最新的Spring Core 6.x已经完全移除了对javax命名空间的依赖,所有Servlet相关的API都迁移到了jakarta.servlet包下。异常栈里的来源是spring-plugin-core,不是Spring Core本身,别搞混了。

解决办法

  • 升级spring-plugin-core版本:直接把依赖换成适配Jakarta的3.x版本,比如spring-plugin-core:3.0.0,这个版本已经完成了命名空间迁移,能和Spring 6兼容。
  • 排查依赖树:用Maven的mvn dependency:tree或者Gradle的gradle dependencies命令,找出所有间接引入旧版spring-plugin-core的依赖,确保没有遗漏的javax系旧依赖。
  • 排除传递依赖:如果有其他依赖间接带进来旧版spring-plugin-core,就在你的依赖声明里加上排除规则,比如Maven中这么写:
<dependency>
    <!-- 替换成你的具体依赖 -->
    <groupId>com.example</groupId>
    <artifactId>your-dependency</artifactId>
    <version>x.x.x</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.plugin</groupId>
            <artifactId>spring-plugin-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:55:01