在Bluemix中启动应用程序时无法创建PoolableConnectionFactory错误

时间:2015-04-11 14:43:02

标签: java hibernate ibm-cloud

将Java应用程序部署到IBM Bluemix后,由于此错误,它无法创建初始数据库连接:

  

构建新的Hibernate SessionFactory 2015-04-11 14:24:04 [主要]错误   o.h.util.JDBCExceptionReporter - 无法创建   PoolableConnectionFactory(通信链路故障最后一个数据包   0毫秒前成功发送到服务器。司机有   没有从服务器收到任何数据包。)

我尝试将“hibernate.current_session_context_class”设置为“thread”(当我将相同的应用程序部署到Google Application Engine时解决了这个问题),但这对Websphere Liberty Profile没有帮助:

<prop key="hibernate.current_session_context_class" >
        thread
 </prop>

有什么想法吗?

UPDATE 1 --- 这是实际的根本原因。 Bluemix提供ClearDB MySQL服务,但其管道无法连接到它:(

  

构建新的Hibernate SessionFactory 2015-04-11 15:04:49 [主要]错误   o.h.util.JDBCExceptionReporter - 通信链接失败

     

成功发送到服务器的最后一个数据包是0毫秒   前。驱动程序未收到来自服务器的任何数据包。

UPDATE 2 --- 如果有任何尝试从管道机器连接的话,即使是实验性的MySQL数据库也是禁用的:

  

o.h.util.JDBCExceptionReporter - 无法创建   PoolableConnectionFactory(通信链路故障

     

成功发送到服务器的最后一个数据包是0毫秒   前。驱动程序没有收到来自服务器的任何数据包。)   org.hibernate.exception.GenericJDBCException:无法打开连接     在   org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)     在org.hibe at   org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)     在   org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)   引起:org.apache.commons.dbcp.SQLNestedException:无法创建   PoolableConnectionFactory(通信链路故障

     

成功发送到服务器的最后一个数据包是0毫秒   前。驱动程序没有从服务器收到任何数据包。)at   org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)     在   org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)     在   org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)     在   org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)     在   org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)     ... 40更多引起:   com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:   通信链路故障

如果您有任何想法,请与我们联系。

1 个答案:

答案 0 :(得分:2)

好的,好的。所以这发生了,因为Liberty buildpack在部署到Bluemix期间为您在JDBC连接中自动装配。对于单元测试,您需要向您的应用提供此连接信息。