这是一种让我疯狂的事情,我在这里发现了一些类似的问题,但我无法让它发挥作用。
我有一个多项目spring(web)项目。它开始很好,但是一旦我想查询数据库,我得到一个
Nested in org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException:
Cannot create JDBC driver of class 'oracle.jdbc.OracleDriver' for connect URL 'jdbc:oracle:thin//server:1521:XE':
我尝试了很多东西:我确保ojdbc.jar在我的项目中(不是maven repo的一部分所以我用gradle加载它像
compile files('lib/websphere_apis.jar','lib/ojdbc14.jar')
在我的子(不是网络)或我的网络项目中。
当我使用gradle war
我尝试使用
将jar添加到jettyRun配置中jettyRun {
additionalRuntimeJars = files('lib/ojdbc14.jar')
}
我有点怀疑files stmt
是否正确,但仍然不起作用。
我也发现我应该把
providedRuntime files("$projectDir/../lib/ojdbc14.jar")
在我的webapp中作为标准依赖,但仍然不适合我。我使用过postgres驱动程序jar,之前我可以将其作为依赖项包含在内。
答案 0 :(得分:1)
使用JDBC .jar文件,如果您不小心在类路径上加载.jar的位置,则可能会出现类似于您所看到的错误。如果您想确定,请将类路径上的.jar作为参数传递给调用该程序的主JVM。原因是您需要确保.jar类文件已加载到"默认JVM类加载器"中。如果您尝试通过其他方式(可能甚至是OSGI)动态加载JDBC .jars,或者像Tomcat一样自定义类加载器动态加载,那么您可能会遇到类加载器问题。