这有点让我发疯,我在 SO 上发现了一些类似的问题,但我无法让它发挥作用。
我有一个多项目 Spring (网络)项目。它开始很好,但是只要我想查询数据库,我就会得到一个
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
生成它们时,它会在 war 中得到 jar 我尝试将 jar 添加到 jettyRun 配置中
jettyRun {
additionalRuntimeJars = files('lib/ojdbc14.jar')
}
我有点怀疑
files stmt
是否是正确的,但它仍然不起作用。我还发现我应该把
providedRuntime files("$projectDir/../lib/ojdbc14.jar")
在我的 webapp 中作为标准依赖项,但这仍然对我不起作用。我使用过 postgres 驱动程序 jar,在此之前我可以将其作为依赖项包含在内。
最佳答案
对于 JDBC .jar 文件,如果您不注意在类路径中加载 .jar 的位置,您可能会收到与您所看到的类似的错误。如果您想确定,请将类路径上的 .jar 作为参数传递给调用程序的主 JVM。原因是您需要确保将 .jar 类文件加载到“默认 JVM 类加载器”中。如果您尝试通过其他方式(甚至可能作为 OSGI)动态加载 JDBC .jar,或者通过像 Tomcat 那样的自定义类加载器动态加载,那么您可能会遇到类加载器问题。
关于oracle - gradle jettyrun oracle 找不到合适的驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21940846/