【问题标题】:spring boot Ojdbc6 class not foundspring boot Ojdbc6 类未找到
【发布时间】: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


【解决方案1】:

转到pom.xml所在项目的目录结构并运行以下命令

mvn spring-boot:run

如果这成功运行服务器,那么只有类路径的问题。

【讨论】:

    【解决方案2】:

    运行此命令mvn -U idea:idea。此命令会将 ojdbc jar 添加到您的 IntelliJ 类路径中。

    【讨论】:

    • 它不工作。我仍然得到同样的错误,即使这个命令已成功执行。
    猜你喜欢
    • 1970-01-01
    • 2018-01-22
    • 2021-06-24
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 2018-01-30
    • 1970-01-01
    相关资源
    最近更新 更多