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

JaxrsOpenApiContextBuilder不支持Jakarta,求适配Jakarta的Swagger依赖

问题描述

当前项目使用如下Swagger依赖:

<dependency>
    <groupId>io.swagger.core.v3</groupId>
    <artifactId>swagger-jaxrs2</artifactId>
    <version>2.2.22</version>
</dependency>

通过以下代码生成Swagger资源:

OpenAPI oas = new OpenAPI();
Info info = new Info();
info.title("Swagger catalog-db-adapter bootstrap code");
info.setVersion("1.0.2");

SwaggerConfiguration oasConfig = new SwaggerConfiguration().openAPI(oas).prettyPrint(true)
        .resourcePackages(Stream.of("org.onap.so.adapters.catalogdb.rest").collect(Collectors.toSet()));

try {
    new JaxrsOpenApiContextBuilder().application(this).openApiConfiguration(oasConfig).buildContext(true);
} catch (OpenApiConfigurationException e) {
    throw new RuntimeException(e.getMessage(), e);
}

执行时报错:JaxrsOpenApiContextBuilder仅支持javax而非Jakarta,询问是否有支持Jakarta的替代依赖。

解决方案

Swagger Core从2.2.0版本开始提供了专门适配Jakarta EE的依赖包,只需替换原有依赖为Jakarta专属版本:

<dependency>
    <groupId>io.swagger.core.v3</groupId>
    <artifactId>swagger-jaxrs2-jakarta</artifactId>
    <version>2.2.22</version>
</dependency>

代码层面无需大幅修改,但要确保项目中相关API的导入从javax.ws.rs.*替换为jakarta.ws.rs.*,比如你的Application实现类需导入jakarta.ws.rs.core.Application而非javax版本。JaxrsOpenApiContextBuilder等Swagger相关类在新依赖中会自动适配Jakarta环境,原有初始化代码可直接复用。

内容的提问来源于stack exchange,提问作者Shubham Shekhar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 21:22:12