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

升级Oracle 19C报java.lang.NoClassDefFoundError: oracle/ons/ONS错误咨询

问题解决办法

错误原因

报错java.lang.NoClassDefFoundError: oracle/ons/ONS的核心原因是:Oracle 19c版本的ojdbc8依赖本身不包含ONS(Oracle Notification Service)组件,该组件从12c版本开始已经从ojdbc主包中拆分出来,成为独立的依赖包,你仅替换了ojdbc8但未引入对应版本的ONS依赖,因此运行时找不到相关类。

解决步骤

  • 第一步:保留现有ojdbc8依赖,额外添加同版本的ONS依赖,依赖配置如下:
<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ons</artifactId>
    <version>19.12.0.0</version>
</dependency>

如果你实际未使用Oracle RAC的ONS相关功能,也可以通过移除连接配置中所有和ONS、快速应用通知(FAN)相关的参数,避免应用触发ONS类的加载,无需额外引入ONS依赖。

  • 第二步:清理旧版本依赖冲突,执行mvn dependency:tree命令检查项目依赖树,确保旧的com.oracle:ons:11.1.0.7.0依赖已经被完全移除,没有被其他间接依赖引入。如果发现存在多版本ONS共存,需要在对应的依赖中添加排除规则,移除旧版本的ONS包。
  • 第三步:验证配置兼容性,如果你的项目使用了Oracle RAC的ONS通知、连接池动态感知等功能,检查原有连接字符串、连接池配置中关于ONS的参数是否适配19c版本,避免配置不兼容导致的二次报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:36:01