sql - 连接 URL 的 Grails SqlException

标签 sql oracle exception grails datasource

我有一个 Grails 应用程序,当我将其部署为 war 时,该应用程序抛出异常。该异常没有任何意义,因为我没有在 Datasource.groovy 文件中配置 Grails 内存数据库。下面是异常和我的 datasource.groovy 文件。谁能告诉我为什么它总是抛出这个异常?我已经运行了 grails cleangrails war 多次。另请注意,我确实下载了 Oracle 驱动程序,并且该应用程序在我的开发计算机上运行良好。谢谢。

异常(exception):

2013-07-22 11:41:30,265 [http-bio-8080-exec-9] ERROR StackTrace  - Full Stack Trace:
java.sql.SQLException: No suitable driver
    at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
2013-07-22 11:41:30,265 [http-bio-8080-exec-9] ERROR StackTrace  - Full Stack Trace:
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class 'oracle.jdbc.pool.OracleDataSource' for connect URL 'jdbc:h2:mem:grailsDB;MVCC=TRUE;LOCK_TIMEOUT=10000'
    at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452)
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
Caused by: java.sql.SQLException: No suitable driver
    at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)
    ... 2 more

数据源.groovy:

dataSource {
    pooled = true
    driverClassName = "oracle.jdbc.pool.OracleDataSource"
    dialect = "org.hibernate.dialect.Oracle10gDialect"
    username = "user"
    password = "password"
}
hibernate {
    cache.use_second_level_cache = true
    cache.use_query_cache = false
    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
// environment specific settings
environments {
    development {
        dataSource {
            dbCreate = "" // one of 'create', 'create-drop', 'update', 'validate', ''
            url = "jdbc:oracle:thin:@localhost:DB"
        }
    }
    test {
        dataSource {
            dbCreate = ""
            url = "jdbc:oracle:thin:@localhost:DB"
        }
    }
    production {
        dataSource {
            dbCreate = ""
            "jdbc:oracle:thin:@localhost:DB"
            pooled = true
            properties {
               maxActive = -1
               minEvictableIdleTimeMillis=1800000
               timeBetweenEvictionRunsMillis=1800000
               numTestsPerEvictionRun=3
               testOnBorrow=true
               testWhileIdle=true
               testOnReturn=true
               validationQuery="SELECT 1"
            }
        }
    }
}

最佳答案

为了清理这个主题,需要在生产 block 中进行调整。

更换

production {
  dataSource {
    dbCreate = ""
    "jdbc:oracle:thin:@localhost:DB"

production {
  dataSource {
    dbCreate = ""
    url = "jdbc:oracle:thin:@localhost:DB"

会起作用的。

关于sql - 连接 URL 的 Grails SqlException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17793038/

相关文章:

java - 简单的CRUD操作异常设计

c# - Dapper中的DbContext,DbSet等

c# - 您可以调用多个存储过程作为事务回滚的一部分c#

sql - 需要一些帮助来解决 SQL 分组问题

sql - 如何创建一个 CHECK 约束,允许用户从今天起只输入 DateTime?

c++ - 我应该使用 std::cerr 和 exit() 而不是抛出异常吗?

sql - 从函数返回查询?

sql - Oracle SQL 在所有表中查找最高 ID

oracle - 什么是类型的子对象?

python - 验证和异常与错误消息元组