Caused by: org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:558)
... 81 more
Caused by: java.sql.SQLException: com.mchange.v2.c3p0.ComboPooledDataSource [ java.beans.IntrospectionException: java.lang.reflect.InvocationTargetException [lastAcquisitionFailureDefaultUser] ] has been closed() -- you can no longer use it.
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.assertCpds(AbstractPoolBackedDataSource.java:447)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getPoolManager(AbstractPoolBackedDataSource.java:459)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:82)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
... 86 more
log4j:ERROR LogMananger.repositorySelector was null likely due to error in class reloading, using NOPLoggerRepository.

解决方案 »

  1.   

    Cannot open connection不能连接数据库
    1.数据库服务是否打开(尝试用DBMS打开数据库)
    2.hibernate连接字符串是否正确
    3.数据库驱动加载是否正确(这个可以用纯JDBC验证下)
    4.其他情况最好还是有代码
      

  2.   

    Cannot open connection
    不能连接数据库  看下数据库服务有没有开启  
      

  3.   

    不知道这两个Caused by之间是什么关系,承接?并列?抑或因果!?还是其它。第一个Caused by异常提示:
    Caused by: java.sql.SQLException: com.mchange.v2.c3p0.ComboPooledDataSource [ java.beans.IntrospectionException: java.lang.reflect.InvocationTargetException [lastAcquisitionFailureDefaultUser] ] has been closed() -- you can no longer use it.
    是在assertCpds后报的,应该也就是assertConnectionPoolDataSource,想要确认连接池数据源是否可用,但被告知you can no longer use it.第二个Caused by因为某些不知道的原因,它无法基于SQLState handledSpecificException,得不到具体异常(或者根本就没有得到SQLState),只知道Cannot open connection,为什么无法得到具体异常这个原因我觉得有兴趣可以去了解一下。还有比较值得先去解决的问题是:
    log4j:ERROR LogMananger.repositorySelector was null likely due to error in class reloading, using NOPLoggerRepository.可能的解决方案:
    http://blog.csdn.net/wang12/article/details/6659003
    http://mymobile.iteye.com/blog/1058044
    或者是log4j版本引起或者是设置或者其它
      

  4.   

    Cannot open connection
    看看你的hibernate的数据库配置是否有错。
      

  5.   

    这个问题我遇到过的,因为你连接数据库后太长时间没有继续访问过,然后继续访问就出现这种错误。是个致命错误,解决方法,你可以在连接池配置的地方加上其他的一些属性
    <property name="automaticTestTable" value="Test" />
    具体的配置你要自己查下 c3p0 的具体配置
      

  6.   

    自己写个jdbc如果可以连接
    把jdbc里面的东西拿到hibernate里面去覆盖掉就行了
      

  7.   

    Cannot open connection不能连接数据库,仔细看看数据库连接池,配置文件