根据this tutorial我正在配置一个简单的grails应用程序。它与grails附带的内部数据库一起运行良好。然后我试图连接oracle数据库与应用程序,但我得到以下错误。
错误2015-10-06 14:21:37,774 [localhost-startStop-1]错误 context.GrailsContextLoader - 初始化应用程序时出错: 创建名为' transactionManagerPostProcessor'的bean时出错: bean的初始化失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 使用名称' transactionManager'创建bean:无法解析引用 to bean' sessionFactory'设置bean属性' sessionFactory&#39 ;; 嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为' sessionFactory'的bean:无法解析引用 bean' hibernateProperties'设置bean属性时 ' hibernateProperties&#39 ;;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 用名称' hibernateProperties'创建bean:无法解决 引用bean' dialectDetector'设置bean属性时 '属性'用键[hibernate.dialect];嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为' dialectDetector':调用init方法的bean 失败;嵌套异常是 org.springframework.jdbc.support.MetaDataAccessException:同时出错 提取DatabaseMetaData;嵌套异常是 org.apache.commons.dbcp.SQLNestedException:无法创建 PoolableConnectionFactory(监听器拒绝与之连接 以下错误:ORA-12505,TNS:监听器目前不知道 连接描述符中给出的SID消息:创建bean时出错 name' transactionManagerPostProcessor':bean的初始化失败; 嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 使用名称' transactionManager'创建bean:无法解析引用 to bean' sessionFactory'设置bean属性' sessionFactory&#39 ;; 嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为' sessionFactory'的bean:无法解析引用 bean' hibernateProperties'设置bean属性时 ' hibernateProperties&#39 ;;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 用名称' hibernateProperties'创建bean:无法解决 引用bean' dialectDetector'设置bean属性时 '属性'用键[hibernate.dialect];嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为' dialectDetector':调用init方法的bean 失败;嵌套异常是 org.springframework.jdbc.support.MetaDataAccessException:同时出错 提取DatabaseMetaData;嵌套异常是 org.apache.commons.dbcp.SQLNestedException:无法创建 PoolableConnectionFactory(监听器拒绝与之连接 以下错误:ORA-12505, TNS:监听器目前不知道 连接描述符中给出的SID
这是我的DataSource.groovy文件
dataSource {
pooled = true
driverClassName = "oracle.jdbc.OracleDriver"
username = "system"
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 = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:oracle:thin:@tan.example.com:1521:orcl;MVCC=TRUE;LOCK_TIMEOUT=10000"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:h2:prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
pooled = true
properties {
maxActive = -1
minEvictableIdleTimeMillis=1800000
timeBetweenEvictionRunsMillis=1800000
numTestsPerEvictionRun=3
testOnBorrow=true
testWhileIdle=true
testOnReturn=true
validationQuery="SELECT 1"
}
}
}
}
我已经在lib文件夹中有了jdbc驱动程序。知道这里有什么问题吗?谢谢。
答案 0 :(得分:0)
这适用于我的测试服务器。 TESTSERVER当然是服务器名称,但也可以是IP地址。
development {
dataSource {
pooled = true
dialect = org.hibernate.dialect.Oracle11gDialect
driverClassName = 'oracle.jdbc.OracleDriver'
username = 'username' // YOUR USERNAME AND PASS
password = 'password'
url = 'jdbc:oracle:thin:@TESTSERVER:1521:TESTDB'
dbCreate = 'update'
}
}