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

CXF与Guava版本冲突引发UncheckedExecutionException解决方案

问题背景

在项目build.gradle中配置使用Guava 19.0、cxf-rt-rs-client 3.4.4依赖,部署运行时抛出异常,核心报错信息如下:

Exception in thread "main" com.google.common.util.concurrent.UncheckedExecutionException: org.apache.cxf.bus.extension.ExtensionException: Could not load extension class org.apache.cxf.common.util.ASMHelperImpl
根因异常:java.lang.IncompatibleClassChangeError: Implementing class
异常触发链路:ClouderaManagerClientBuilder构建客户端 -> 初始化CXF Bus -> 加载ASMHelperImpl扩展类时抛出类不兼容错误

当前依赖配置
compile group: 'com.cloudera.api', name: 'cloudera-manager-api', version:'6.3.0'
compile group: 'org.slf4j', name: 'slf4j-log4j12', version:'1.7.21'
compile group: 'com.github.stefanbirkner', name: 'system-rules', version:'1.3.0'
compile group: 'org.eclipse.persistence', name: 'eclipselink', version:'2.4.2'
compile group: 'org.apache.cxf', name: 'cxf-rt-transports-http', version:'2.7.7'
compile group: 'org.json', name: 'json', version:'20140107'
compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.30'
testCompile group: 'junit', name: 'junit', version:'4.12'
compile files('src/resources/javamail-4.0.jar')
compile(group: 'commonlibs', name: 'aes128-encryption', version: '1.1.3')
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.10.3'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.13.0'
compile group: 'com.fasterxml.jackson.jaxrs', name: 'jackson-jaxrs-base', version: '2.10.3'
compile group: 'com.fasterxml.jackson.jaxrs', name: 'jackson-jaxrs-json-provider', version: '2.10.3'
compile group: 'com.fasterxml.jackson.module', name: 'jackson-module-jaxb-annotations', version: '2.10.3'
compile group: 'org.apache.cxf', name: 'cxf-rt-rs-client', version: '3.4.4'
compile group: 'com.google.guava', name: 'guava', version: '19.0'
已尝试操作
  • 更换cxf-rt-rs-client版本为3.4.2
  • 更换Guava版本为30-jre、15.0
    以上操作均未解决问题。
排查解决步骤
  • 优先处理CXF版本混装问题:当前依赖同时存在cxf-rt-transports-http:2.7.7(2.x大版本)和cxf-rt-rs-client:3.4.4(3.x大版本),跨大版本的CXF核心类、字节码处理逻辑完全不兼容,是触发IncompatibleClassChangeError的最常见原因。将所有手动引入的CXF相关依赖版本统一对齐,不要混装2.x和3.x的CXF组件。
  • 排查全量依赖树的冲突:执行gradle dependencies命令输出完整依赖传递链路,重点排查两类冲突:
    • 其他依赖(包括cloudera-manager-api、本地引入的commonlibs、javamail包)是否传递引入了不同版本的ASM字节码库,CXF 3.4.4依赖ASM 7.x版本,低版本ASM会直接导致ASMHelperImpl类加载失败
    • 是否存在多版本Guava、多版本Jackson重复引入的情况,这类基础工具包版本冲突也会触发类不兼容错误
      发现冲突后直接通过exclude规则排除多余的低版本依赖,全链路保留同一版本的组件。
  • 对齐Cloudera客户端自带的CXF版本:Cloudera Manager 6.3.0客户端API默认依赖CXF 3.0.x系列,手动引入3.4.4版本的CXF组件大概率和Cloudera客户端内置的CXF类产生冲突。可以先删除手动添加的cxf-rt-rs-client、cxf-rt-transports-http依赖,直接使用cloudera-manager-api传递引入的CXF版本启动验证。
  • 清理构建缓存:修改完依赖配置后执行gradle clean build --refresh-dependencies,强制拉取最新依赖、清理本地旧构建缓存,避免缓存中残留的旧版本jar包被错误加载。

内容的提问来源于stack exchange,提问作者Jessica Jindal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:09:20