java - 在 OpenShift 平台中使用 MySql 的 Spring Webapp

标签 java mysql spring openshift paas

我最近刚从 EC2 迁移到 OpenShift,因为 Openshift 有这些应用程序,只需单击 1 次即可非常快速地安装(他们称之为卡式盒),但我现在使用这个 MySql 卡式盒有一个问题。

我的 spring webapp 部署在我的 OpenShift 中,硬编码数据库 URL、USERNAME、mysql 服务器的密码无法正常工作。大多数论坛建议使用环境变量指向数据库 url、用户、密码,但仍然无法正常工作。 但我担心的是,即使我硬编码了 db url、用户名和密码,它至少也能工作。

任何有用和有帮助的解决方案将不胜感激。

 SEVERE: Servlet.service() for servlet [dispatcher] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access: SQLException for SQL [n/a]; SQL state [null]; error code [0]; Could not open connection; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection] with root cause
com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
        at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1319)
        at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
        at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
        at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
        at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
        at org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:79)
        at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:277)
        at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297)
        at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:169)
        at org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.extractPhysicalConnection(ConnectionProxyHandler.java:82)
        at org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.continueInvocation(ConnectionProxyHandler.java:138)
        at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
        at com.sun.proxy.$Proxy63.prepareStatement(Unknown Source)
        at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:147)
        at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:166)
        at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:145)
        at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1720)
        at org.hibernate.loader.Loader.doQuery(Loader.java:828)
        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:289)
        at org.hibernate.loader.Loader.doList(Loader.java:2447)
        at org.hibernate.loader.Loader.doList(Loader.java:2433)
        at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2263)
        at org.hibernate.loader.Loader.list(Loader.java:2258)
        at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:470)
        at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)
        at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:196)
        at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1161)
        at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
        at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:252)
        at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:77)

最佳答案

如果您运行的是缩放应用程序,那么您还需要使用数据库端口的环境变量,因为它不是标准的 3306。您可以通过 sshing 进入您的设备并运行 env | 来检查这一点。 grep MYSQL 并查看它打印出的内容。

关于java - 在 OpenShift 平台中使用 MySql 的 Spring Webapp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19129467/

相关文章:

java - 无法读取架构文档 'http ://www. springframework.org/schema/beans/spring-beans.xsd

java - 为 Hibernate 域对象创建元表

java - 使用 JFXPanel 为 native 应用程序构建 Facebook OAuth 登录流程

java - 如何从 ExpandableListView 获取特定 View ?

java - 自动填充组合框系列 - Java

javascript - 如何保证一个类永远不会暴露在 Vaadin 客户端

mysql - 有单位的sql导入文件吗?

mysql - 选择多次出现的所有行

php - 拍摄特定数据快照的最佳方法

mysql - JavaFX + Spring + JDBC 可以吗?