Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Bluemix中启动应用程序时无法创建PoolableConnectionFactory错误_Java_Hibernate_Ibm Cloud - Fatal编程技术网

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

Java 在Bluemix中启动应用程序时无法创建PoolableConnectionFactory错误,java,hibernate,ibm-cloud,Java,Hibernate,Ibm Cloud,一旦我将Java应用程序部署到IBM Bluemix,由于以下错误,它将无法创建初始数据库连接: 构建新的Hibernate会话工厂2015-04-11 14:24:04[主]错误 o、 h.util.jdbceptionReporter-无法创建 PoolableConnectionFactory(最后一个数据包的通信链路故障) 0毫秒前已成功发送到服务器。驱动程序已 未从服务器收到任何数据包。) 我试图将“hibernate.current_session_context_class”设置为

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

构建新的Hibernate会话工厂2015-04-11 14:24:04[主]错误 o、 h.util.jdbceptionReporter-无法创建 PoolableConnectionFactory(最后一个数据包的通信链路故障) 0毫秒前已成功发送到服务器。驱动程序已 未从服务器收到任何数据包。)

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

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

线
有什么想法吗

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

构建新的Hibernate会话工厂2015-04-11 15:04:49[主]错误 o、 h.util.jdbceptionReporter-通信链路故障

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

更新2---如果有人试图从管道机器进行连接,那么即使是实验性的MySQL数据库也是禁止的:

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

成功发送到服务器的最后一个数据包为0毫秒 以前。驱动程序尚未从服务器收到任何数据包。) org.hibernate.exception.genericjdbception:无法打开连接 在 org.hibernate.exception.sqlstatecoverter.handledNonsspecificeException(sqlstatecoverter.java:140) 网址:org.hibe 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毫秒 之前。驱动程序尚未从服务器收到任何数据包。)位于 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: 通信链路故障


如果您有任何想法,请告诉我。

啊,好的。之所以发生这种情况,是因为Liberty buildpack在部署到Bluemix期间为您自动连接JDBC连接。对于单元测试,您需要向您的应用程序提供此连接信息。

不确定“其管道无法连接到它”是什么意思。您是在谈论DevOps构建/测试/部署管道吗?您是否看到管道的某个特定部分存在此问题?管道的第一步(构建阶段)运行单元测试,单元测试尝试连接到Bluemix(即ClearDB)外部托管的MySQL数据库。如果我尝试使用“cf push”直接部署由于存在“springcore.jar”,应用程序甚至无法启动这会触发错误:javax.servlet.ServletContainerInitializer:Provider org.cloudfoundry.Reconfication.spring.AutoReconfigurationServletContainerInitializer无法实例化..原因:java.lang.NoClassDefFoundError:org.springframework.context.ApplicationContextInitializer.问题太多..我确实有“spring context”在我的pom.xml中声明。看起来“Starter Code”应用程序对管道很好,因为war是通过“ant”生成的,它将归档文件夹设置为“output”,我不太确定,但Maven的构建和部署不是以非常直观的方式配置的,我现在使用“-DskipTests”标记只是为了看看我是否可以通过管道进行部署,但到目前为止还没有运气。“部署阶段”继续错过工件(即我的.war),看起来它们不是从“构建从机”检索并复制到“部署从机”中。有什么想法吗???问题是,对于这个练习(学术研究),我必须使用MySQL数据库,正如我们所知,在Bluemix atm中,我们有实验性的MySQL和ClearDB MySQL(托管在Bluemix的基础设施之外),当我发布这个问题时,我试图通过管道运行单元测试来连接ClearDB,所以我猜管道机器对任何外部通信都是封闭的,这在本例中阻止了我。因此我决定使用IBM的MySQL,创建了一个PHP应用程序,纯粹是为了使用PHPMyAdmin来设置我的DB。目前我真的很想他“Deploy Stage”承认my.war artifact.ClearDB托管在公共互联网上。您实际上可以从本地计算机访问它。登录Bluemix并单击您的应用程序。您将看到ClearDB的一个框。将有一个按钮显示“显示凭据”。单击该按钮,您可以获取连接信息。也可以查看此帖子,了解如何使用命令行。