当前位置: 首页 > 知识库问答 >
问题:

OpenShift平台中使用MySql的Spring Webapp

公羊曜灿
2023-03-14

我最近刚从EC2迁移到OpenShift,因为OpenShift有一些应用程序,只需点击一下就可以很快安装(他们称之为cartridges),但我现在使用这个MySql Cartridge有一个问题。

我的spring webapp部署在OpenShift中,硬编码mysql服务器的数据库URL、用户名和密码都不工作。大多数论坛建议使用环境变量来指向数据库url、用户、密码,但仍然不起作用。但我关心的是,即使我硬编码了数据库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)

共有1个答案

池永长
2023-03-14

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

 类似资料:
  • 新浪SAE平台使用 新版sp框架直接支持在新浪云计算平台(SAE)上面运行。 不再需要像旧版一样区分SAE版本和非SAE版本的做法,目前SAE对许多PHP原生环境支持都比较好了。 新版框架在SAE平台上面的演示地址:https://speedphp.sinaapp.com/ 当然,在SAE上面使用新版sp框架,还是得注意一下: protected/config.php配置文件中,设置一下view的

  • 我用JBossas7创建了一个新的可伸缩应用程序。创建之后,添加MySql墨盒。但是当我使用SSH登录到gear时,我无法看到mysql目录。同样,当尝试使用sqlplus时,会引发command not found错误。 我还尝试使用JDBC使用一个简单的Java应用程序连接到数据库。在Openshift环境中使用了Valuse变量。出现连接超时异常。 我是不是漏掉了一些基本的东西?

  • 我是Harold,我是Openshift的新手,我使用下面的代码通过这里的示例用java连接到MySQLhttps://www.openshift.com/forums/openshift/no-suitable-driver-found-error, 不幸的是,我没能成功。 起初,它说“找不到合适的驱动程序”,所以我将mysql连接器添加到WEB-INF/lib文件夹并添加类。forName(“

  • 我正在使用OpenCV和JsonCpp在C++中创建一个库,以便为Android和iOS创建一个库。 在为Android测试我的库时,我正在制作JNI文件,但当我尝试加载库时,我得到了 这是因为我认为我的Json库构建得不是很好。 我使用的库是这样的:https://github.com/open-source-parsers/jsoncpp 我的Android.mk是: 即使我编译了JsonCp

  • 我已经学会了使用NotifyDescriptor创建弹出对话框。我设计了一个带有两个大按钮的JPanel,分别为和,我使用的代码在底部显示了另一个按钮,分别为和。我不希望NotifyDescriptor在屏幕上放置自己的按钮。我只想让我的按钮在那里,当单击某个自定义按钮时,弹出窗口将关闭并存储值。(就像单击或时关闭窗口一样)。我正在使用的代码如下

  • 我在尝试连接到数据库时遇到以下错误: java.sql.没有找到适合jdbc:mysql://localhost:3306/等的驱动程序。 MySQL连接器。jar位于WEB-INF/lib文件夹中 以下内容已添加到pom中。xml文件: 如有任何帮助/指导,将不胜感激。