Grails - 找不到适合 jdbc:oracle:thin 的驱动程序:
Grails - No suitable driver found for jdbc:oracle:thin:
我的 Grails 网络应用程序使用名为 ws-client-1.0.2.jar 的临时库,该库依赖于 Oracle (com.oracle.ojdbc14:10.2.0.3.0)。
因为 Grails 存储库不包含该 Oracle 驱动程序,所以我将其从 DataSource.groovy 中删除,并手动抓取它的 jar 并将其放在 lib/ 文件夹下。然后,我的 lib/ 包含:
我 运行 grails compile --refresh-dependencies
它工作正常。
然后,我用 grails run-app
启动了我的应用程序,每次出现此错误时:
Class: java.sql.SQLException
Message: No suitable driver found for jdbc:oracle:thin:@svildb.dev:1538:QUAT
当我 运行 单元测试 grails run test-app
时也会发生同样的情况
为什么 ojdbc 驱动程序在 lib/ 文件夹下却没有加载?
感谢@Duffymo's 我取得了一些进步:
- 我从 here
下载了 ojdbc7.jar
- 我放在lib/文件夹下
多亏了这个post我找到了解决方案:
感谢 @Duffymo's 我下载了正确的 Oracle ojdbc 驱动程序:
- 我从 here
下载了 ojdbc7.jar
- 我放在lib/文件夹下
之后,在依赖 Oracle ojdbc 的库 ws-client-1.0.2.jar 中,我更改了实例化 Sql 对象的方式:
之前
import groovy.sql.Sql
...
db={ Sql.newInstance(
'jdbc:oracle:thin:@vbsvildb.dev:1538:QUAT',
'user',
'password',
'oracle.jdbc.OracleDriver'
)
}
之后
import groovy.sql.Sql
import org.apache.commons.dbcp.BasicDataSource
...
/* Setting connection details */
BasicDataSource bdsQUAT = new BasicDataSource()
bdsQUAT.setUrl("jdbc:oracle:thin:@svildb.dev:1538:QUAT")
bdsQUAT.setUsername("user")
bdsQUAT.setPassword("password")
bdsQUAT.setDriverClassName("oracle.jdbc.OracleDriver")
/* Getting connection to DB */
db=Sql.newInstance(bdsQUAT.getConnection())
我再次构建了库,得到了一个新的 ws-client-1.0.2.jar,然后我将它复制到 lib/ 文件夹下的我的 grails 项目中。
现在,如果我 运行 grails test-app
一切正常!
我的 Grails 网络应用程序使用名为 ws-client-1.0.2.jar 的临时库,该库依赖于 Oracle (com.oracle.ojdbc14:10.2.0.3.0)。 因为 Grails 存储库不包含该 Oracle 驱动程序,所以我将其从 DataSource.groovy 中删除,并手动抓取它的 jar 并将其放在 lib/ 文件夹下。然后,我的 lib/ 包含:
我 运行 grails compile --refresh-dependencies
它工作正常。
然后,我用 grails run-app
启动了我的应用程序,每次出现此错误时:
Class: java.sql.SQLException
Message: No suitable driver found for jdbc:oracle:thin:@svildb.dev:1538:QUAT
当我 运行 单元测试 grails run test-app
为什么 ojdbc 驱动程序在 lib/ 文件夹下却没有加载?
感谢@Duffymo's
- 我从 here 下载了 ojdbc7.jar
- 我放在lib/文件夹下
多亏了这个post我找到了解决方案:
感谢 @Duffymo's
- 我从 here 下载了 ojdbc7.jar
- 我放在lib/文件夹下
之后,在依赖 Oracle ojdbc 的库 ws-client-1.0.2.jar 中,我更改了实例化 Sql 对象的方式:
之前
import groovy.sql.Sql
...
db={ Sql.newInstance(
'jdbc:oracle:thin:@vbsvildb.dev:1538:QUAT',
'user',
'password',
'oracle.jdbc.OracleDriver'
)
}
之后
import groovy.sql.Sql
import org.apache.commons.dbcp.BasicDataSource
...
/* Setting connection details */
BasicDataSource bdsQUAT = new BasicDataSource()
bdsQUAT.setUrl("jdbc:oracle:thin:@svildb.dev:1538:QUAT")
bdsQUAT.setUsername("user")
bdsQUAT.setPassword("password")
bdsQUAT.setDriverClassName("oracle.jdbc.OracleDriver")
/* Getting connection to DB */
db=Sql.newInstance(bdsQUAT.getConnection())
我再次构建了库,得到了一个新的 ws-client-1.0.2.jar,然后我将它复制到 lib/ 文件夹下的我的 grails 项目中。
现在,如果我 运行 grails test-app
一切正常!