【问题标题】:OracleJDBC driver and Tomcat java.sql.SQLException: No suitable driverOracleJDBC 驱动程序和 Tomcat java.sql.SQLException:没有合适的驱动程序
【发布时间】:2020-06-25 22:06:50
【问题描述】:

我在 动态 Web 应用程序中使用 oracle JDBC 驱动程序有这个异常

...
Caused by: java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(DriverManager.java:315)
at com.zaxxer.hikari.util.DriverDataSource.<init>(DriverDataSource.java:106)
... 56 more

但是在部署时应该正确加载驱动程序 a picture showing Deployment Assembly property with oracle driver in it

编辑: eclipse 在清理项目后向我显示此警告

Classpath entry xxxx/ojdbc6.jar will not be exported or published. Runtime ClassNotFoundExceptions may result.      service     P/service   Classpath Dependency Validator Message

编辑:关于我的系统的信息:

1- tomcat 8.5:我在 $CATALINA_HOME/lib btw 中有驱动程序

2- oracle 11g [ojdbc6]:使用 HikariCP

3- eclipse 4.14.0: +maven 使用 jersey webapp 原型

编辑:它以前适用于普通(非网络)项目

编辑:这就是我配置数据源的方式

        config.setJdbcUrl(jdbcUrl);
        config.setUsername(username);
        config.setPassword(passsword);
        config.addDataSourceProperty( "cachePrepStmts" , "true" );
        config.addDataSourceProperty( "prepStmtCacheSize" , "250" );
        config.addDataSourceProperty( "prepStmtCacheSqlLimit" , "2048" );         
        // config.addDataSourceProperty("driverClassName", "oracle.jdbc.driver.OracleDriver");
        config.setDriverClassName("oracle.jdbc.driver.OracleDriver")
    }
        ds = new HikariDataSource(config);
//some code

【问题讨论】:

  • 我看到您正在使用 Hikari 和相对较旧的 Oracle 驱动程序 (ojdbc6.jar)。尝试更新的 Oracle JDBC JAR,具体取决于您的 Oracle 版本。或者,也可以尝试使用 Hikari driverClassName 属性。其jdbcUrl 属性的 Hikari 文档提到:“当将此属性与“旧”驱动程序一起使用时,您可能还需要设置 driverClassName 属性”。如果我记得,驱动程序类名称就是“oracle.jdbc.OracleDriver”。其他人可能会纠正我,如果这是错误的。
  • @andrewjames 我以前尝试过这个解决方案(驱动程序类名称),但它没有用,它在另一个简单(非网络)项目中工作,这就是为什么我假设一些与网络相关的东西可能是问题
  • @andrewjames 我尝试使用来自DriverManager 类的普通驱动程序,但也找不到该驱动程序。所以现在我认为这是与tomcat有关的问题
  • 请说明您如何配置数据源,包括您设置的属性。 WAR 中包含的 JDBC 驱动程序需要在使用之前显式加载(自动驱动程序加载仅适用于初始类路径上的驱动程序)。
  • @MarkRotteveel 完成。我已经手动将 ojdbc6.jar 文件添加到 WEB-INF/lib 中还有什么我可以做的吗?

标签: oracle eclipse tomcat jdbc


【解决方案1】:

到目前为止,唯一对我有用的是将 ojdbc6.jar 手动添加到 jvm 库 /lib/jvm/java-8-openjdk/jre/lib/ext 然后重新启动我的机器。我知道这叫 BAD PRACTICE! 因为其他人也必须这样做。我不会接受这个答案,等待好的解决方案。

【讨论】:

    【解决方案2】:

    你能看看Tomcat Servlet吗?

    【讨论】:

      猜你喜欢
      • 2021-08-04
      • 2013-12-21
      • 2021-07-13
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      • 2012-07-07
      相关资源
      最近更新 更多