oracle - gradle jettyrun oracle 找不到合适的驱动程序

标签 oracle gradle jetty ojdbc

这有点让我发疯,我在 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/

相关文章:

php 在 try catch block 中调用 oci_execute

c++ - Nix Gradle dist - 无法为 Linux amd64 加载 native 库 'libnative-platform.so'

android - dependency commons-logging :commons-logging:1. 2 被调试忽略,因为它可能与 Android 提供的内部版本冲突

maven - Jetty注解超时原因

在Jetty中运行的Grails在没有布局模板的情况下呈现404错误页面

oracle - ORA-02070 : database does not support in this context

oracle - for循环后的最后一个过程语句在pl sql中不起作用

sql - 高级 SQL - 如何显示 Oracle 表中多个列的运行总和

android - 如何导入 RecyclerView for Android L-preview

java - 如何自动扩展 Heroku Java 后端测功机?