【发布时间】: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