Grails - 没有为jdbc找到合适的驱动程序:oracle:thin:

时间:2015-04-07 15:41:14

标签: grails jdbc

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 /包含:

lib/ folder![][1]

我跑了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 /文件夹下?

2 个答案:

答案 0 :(得分:2)

感谢@Duffymo' comment我取得了一些进展:

  1. 我从here
  2. 下载了ojdbc7.jar
  3. 我把它放在lib /文件夹下。

答案 1 :(得分:1)

我找到了解决方案,感谢post

感谢@Duffymocomment我下载了正确的Oracle ojdbc驱动程序:

  1. 我从here
  2. 下载了ojdbc7.jar
  3. 我把它放在lib /文件夹下。
  4. 之后,在依赖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一切正常!