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

启动服务器/触发流水线时OracleDriver加载失败求助

无法加载OracleDriver的问题排查

问题描述

启动服务器或触发流水线时抛出如下错误:

java.sql.SQLException: Unable to load class: oracle.jdbc.driver.OracleDriver from ClassLoader:java.net.URLClassLoader@545b995e;ClassLoader:java.net.URLClassLoader@545b995e

详细错误栈:

java.sql.SQLException: Unable to load class: oracle.jdbc.driver.OracleDriver from ClassLoader:java.net.URLClassLoader@545b995e;ClassLoader:java.net.URLClassLoader@545b995e
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:316)
    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:228)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:764)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:692)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:496)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:154)
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:121)
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:110)
    at org.apache.tomcat.jdbc.pool.DataSourceFactory.createDataSource(DataSourceFactory.java:560)

已做排查:Tomcat的lib目录原本缺少ojdbc包,最初pom.xml也无对应依赖,添加了scope为provided的ojdbc 8.0依赖后重新构建,问题仍存在。


可能的原因及解决方向

  • provided scope的依赖未被运行环境提供:provided表示依赖由运行环境(如Tomcat)提供,构建时不会将ojdbc包打入应用包。如果Tomcat的${CATALINA_HOME}/lib目录仍未手动放入ojdbc8.jar,运行时自然找不到驱动类。要么把scope改为compile让构建工具将包打入应用,要么手动将ojdbc8.jar放到Tomcat的lib目录。
  • ojdbc版本与Oracle数据库不兼容:ojdbc8对应Oracle 12c及以上版本,若数据库是11g或更低版本,会出现兼容性问题导致驱动加载失败。需匹配数据库版本选择驱动:Oracle 11g用ojdbc6,12c+用ojdbc8。
  • 驱动类配置路径过时:Oracle 12c及以上推荐使用oracle.jdbc.OracleDriver,旧的oracle.jdbc.driver.OracleDriver已被标记为过时,部分环境下无法正常加载,检查数据库连接配置中的driverClassName是否正确。
  • 构建缓存未清理:Maven/Gradle的缓存可能保留了旧的依赖状态,导致新添加的依赖未生效。执行mvn clean install(Maven)或gradle clean build(Gradle)清理缓存后重新构建。
  • Tomcat类加载异常:若Tomcat lib目录下的ojdbc包损坏,或运行Tomcat的用户没有lib目录的读取权限,会导致类加载失败。重新下载ojdbc包替换,或调整目录权限后重启Tomcat。
  • 流水线部署未生效:如果是流水线部署,可能构建后的包未正确上传到服务器,或Tomcat未重启导致新依赖未加载。确认部署包中是否包含ojdbc包(若scope为compile),或Tomcat lib目录已更新后重启服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:01:07