gradle jettyrun oracle找不到合适的司机

时间:2014-02-21 17:14:26

标签: oracle gradle jetty ojdbc

这是一种让我疯狂的事情,我在这里发现了一些类似的问题,但我无法让它发挥作用。

我有一个多项目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时,会让战争中的jar变为战争

我尝试使用

将jar添加到jettyRun配置中
jettyRun {
   additionalRuntimeJars = files('lib/ojdbc14.jar')
}

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

我也发现我应该把

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

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

1 个答案:

答案 0 :(得分:1)

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