【发布时间】:2018-05-01 08:14:11
【问题描述】:
我的项目设置是SpringBoot4+Mybatis+Oracle10g。这个项目显然需要ojdbc驱动。所以我先用命令将 Ojdbc6 安装到本地 maven 仓库中。
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dpackaging=jar -Dversion=11.2.0.4 -Dfile=ojdbc6.jar -DgeneratePom=true
然后我像这样在pom文件中导入它。
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
之后,我重新导入了项目依赖项,发现ojdbc6.jar 出现在外部库中。一切似乎都很完美,除了当我尝试运行从 Oracle 获取数据的代码时,出现了这个错误
2018-05-01 15:57:33.709 [http-nio-8080-exec-8] ERROR org.apache.tomcat.jdbc.pool.ConnectionPool - Unable to create initial connections of pool.
java.sql.SQLException: Unable to load class: oracle.jdbc.driver.OracleDriver from ClassLoader:sun.misc.Launcher$AppClassLoader@b4aac2;ClassLoader:TomcatEmbeddedWebappClassLoader
context: ROOT
delegate: true
----------> Parent Classloader:
sun.misc.Launcher$AppClassLoader@b4aac2
at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:283)
at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:203)
at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:735)
at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:667)
at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:482)
at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:154)
这对我来说没有任何意义。当ojdbc.jar明显在类路径中时,它怎么可能无法加载jdbc类?
【问题讨论】:
-
你是如何运行代码的?从 IntelliJ 还是从命令行?
-
Intellij 专业版
-
是不是驱动类
oracle.jdbc.OracleDriver而不是oracle.jdbc.driver.OracleDriver看起来配置错误。另外请添加完整的堆栈跟踪,而不仅仅是一个 sn-p。 -
如果您通过 IDE 部署到 Tomcat,请确保您已将此 jar 添加到然后部署的 artifact 中。当然,请确保您指定了正确的驱动程序类名称,正如@M.Deinum 指出的那样。
标签: java oracle spring-boot intellij-idea ojdbc