My Grails web-app使用名为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 /文件夹下?
答案 0 :(得分:2)
答案 1 :(得分:1)
我找到了解决方案,感谢post:
感谢@Duffymo的comment我下载了正确的Oracle ojdbc驱动程序:
之后,在依赖Oracle ojdbc的库ws-client-1.0.2.jar中,我改变了实例化Sql对象的方式:
<强> BEFORE 强>
import groovy.sql.Sql
...
db={ Sql.newInstance(
'jdbc:oracle:thin:@vbsvildb.dev:1538:QUAT',
'user',
'password',
'oracle.jdbc.OracleDriver'
)
}
<强> AFTER 强>
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
一切正常!