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

Java8迁移Java21:Javax转Jakarta后PageContext编译报错求助

解决Java 8→Java 21迁移中javax.servlet.jsp.PageContext找不到的问题
  • 全局排查残留的javax引用
    用IDE全局搜索遍历项目所有文件(JSP、Java类、XML配置、自定义标签文件等),确认是否还有javax.servlet.jsp.PageContext的残留引用。比如JSP脚本片段、EL表达式里的隐式对象引用,或是自定义标签类中继承/引用了旧的javax类,这些都容易被遗漏。

  • 排查依赖传递引入的javax包
    执行mvn dependency:tree生成依赖树,检查是否有第三方依赖偷偷引入了javax.servlet.jsp相关旧依赖。如果发现,在对应依赖节点下添加排除规则:

    <dependency>
        <!-- 第三方依赖坐标 -->
        <groupId>xxx</groupId>
        <artifactId>xxx</artifactId>
        <version>xxx</version>
        <exclusions>
            <exclusion>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>javax.servlet.jsp-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  • 更新Maven插件版本并配置Java 21编译参数
    确保maven-compiler-plugin和maven-war-plugin版本支持Java 21与Jakarta EE,推荐配置:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.11.0</version>
                <configuration>
                    <source>21</source>
                    <target>21</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.3.2</version>
            </plugin>
        </plugins>
    </build>
    
  • 清理Maven缓存并重新构建
    执行mvn clean install -U,清理本地Maven仓库缓存文件,强制更新所有依赖,避免旧的javax类文件残留干扰编译。

  • 确认容器版本兼容性
    如果用Tomcat作为运行容器,必须升级到Tomcat 10.1.x及以上版本(Tomcat 10+才完全支持Jakarta EE 9+规范)。旧版Tomcat依赖javax包,会导致类路径冲突。

  • 检查JSP编译插件(若使用)
    若项目用maven-jspc-plugin预编译JSP,需将版本升级到支持Jakarta的2.0.0及以上,避免插件内部引用旧的javax类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 10:41:15