1

这有点让我发疯,我在 SO 上发现了一些类似的问题,但我无法让它发挥作用。

我有一个多项目弹簧(网络)项目。它开始很好,但是只要我想查询数据库,我就会得到一个

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

我尝试将罐子添加到 jettyRun 配置中

jettyRun {
   additionalRuntimeJars = files('lib/ojdbc14.jar')
}

我有点怀疑这是否files stmt正确,但它仍然不起作用。

我还发现我应该把

   providedRuntime files("$projectDir/../lib/ojdbc14.jar")

在我的 webapp 中作为标准依赖项,但这仍然对我不起作用。我使用过 postgres 驱动程序 jar,在此之前我可以将其作为依赖项包含在内。

4

1 回答 1

1

对于 JDBC .jar 文件,如果您不注意在类路径中加载 .jar 的位置,您可能会收到与您所看到的类似的错误。如果您想确定,请将类路径上的 .jar 作为参数传递给调用程序的主 JVM。原因是您需要确保将 .jar 类文件加载到“默认 JVM 类加载器”中。如果您尝试通过其他方式(甚至可能是 OSGI)动态加载 JDBC .jar,或者像 Tomcat 那样通过自定义类加载器动态加载,那么您可能会遇到类加载器问题。

于 2014-02-23T03:54:24.407 回答