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

升级SpringBoot 3.x后OpenAPI生成的ApiUtils仍依赖javax.servlet求助

解决SpringBoot 3.x迁移中OpenAPI生成ApiUtils引用javax的问题

以下是几个可行的解决方向:

  • 升级OpenAPI Generator版本
    旧版本的OpenAPI Generator默认使用javax相关类,需要升级到支持Jakarta EE的版本(6.0.0及以上)。如果使用maven插件,配置示例如下:

    <plugin>
        <groupId>org.openapitools</groupId>
        <artifactId>openapi-generator-maven-plugin</artifactId>
        <version>6.6.0</version> <!-- 选择最新稳定版 -->
        <configuration>
            <!-- 你的生成配置 -->
        </configuration>
    </plugin>
    
  • 启用Jakarta EE生成参数
    在OpenAPI Generator的配置中添加useJakartaEe=true,强制生成基于Jakarta的代码:

    <plugin>
        <groupId>org.openapitools</groupId>
        <artifactId>openapi-generator-maven-plugin</artifactId>
        <!-- 版本配置 -->
        <configuration>
            <useJakartaEe>true</useJakartaEe>
            <!-- 其他配置:如API spec路径、输出目录等 -->
        </configuration>
    </plugin>
    
  • 排查并排除传递性javax依赖
    执行mvn dependency:tree查看依赖树,确认是否有第三方依赖间接引入了javax.servlet-api。如果存在,在对应的依赖中排除该依赖:

    <dependency>
        <groupId>[问题依赖的groupId]</groupId>
        <artifactId>[问题依赖的artifactId]</artifactId>
        <version>[对应版本]</version>
        <exclusions>
            <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  • 清理缓存与旧生成文件
    残留的旧生成文件可能导致编译错误,执行以下操作:

    1. 手动删除生成目录下的ApiUtils等相关文件
    2. 运行mvn clean清理项目编译缓存
    3. 重新执行OpenAPI代码生成命令
  • 检查自定义模板的隐式依赖
    即使你没在mustache文件中直接写javax引用,也可能用到了生成器内置的宏或变量(比如处理响应的模板片段)。可以尝试替换为官方提供的Jakarta版模板,或者在自定义模板中显式将javax.servlet.http.HttpServletResponse替换为jakarta.servlet.http.HttpServletResponse。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:20:40