Grails Error - TNS:侦听器当前不知道连接描述符

时间:2015-10-06 09:08:44

标签: oracle grails

根据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驱动程序。知道这里有什么问题吗?谢谢。

1 个答案:

答案 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'

    }
}