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

升级Jackson版本后访问Swagger UI出现500初始化异常

问题解决方案

核心原因

Swagger 1.5.16与Jackson 2.13.x版本存在兼容性冲突:Apache CXF的JaxRs2Extension类通过ServiceLoader实例化时,依赖的Jackson旧API在2.13.x中已变更或移除,导致实例化失败,进而触发Spring Bean创建异常。

解决办法

  • 升级Apache CXF版本:Swagger 1.5.16搭配的CXF版本通常不支持Jackson 2.13.x,建议将CXF升级到3.5.x及以上版本(该系列开始兼容Jackson 2.12+),确保JaxRs2Extension能适配新版Jackson的API。
  • 排除CXF中的Jackson依赖:若暂时无法升级CXF,可在CXF相关依赖中排除旧的Jackson模块,强制使用项目中的2.13.x版本。以Maven为例:
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-rs-swagger</artifactId>
    <version>当前使用的CXF版本</version>
    <exclusions>
        <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
        </exclusion>
    </exclusions>
</dependency>
  • 降级Jackson版本:如果上述方案都无法实施,可暂时将Jackson降级到与Swagger 1.5.16兼容的版本,比如2.11.x系列(该版本既满足兼容性,也修复了部分安全漏洞)。
  • 手动注册SwaggerExtension Bean:绕过ServiceLoader的自动加载机制,手动创建JaxRs2Extension并注册为Spring Bean:
@Bean
public SwaggerExtension jaxRs2Extension() {
    return new org.apache.cxf.jaxrs.swagger.JaxRs2Extension();
}

注意:此方法仅适用于JaxRs2Extension的构造逻辑未依赖已移除的Jackson API的情况,若仍存在API缺失,还是需要升级CXF。

内容的提问来源于stack exchange,提问作者Ashwini Bedwal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 23:20:46