如何在 Openshift Tomcat 7 (JBOSS EWS 2.0) 中设置休眠 MySQL 连接?

Posted

技术标签:

【中文标题】如何在 Openshift Tomcat 7 (JBOSS EWS 2.0) 中设置休眠 MySQL 连接?【英文标题】:How to set Hibernate MySQL Connection in Openshift Tomcat 7 (JBOSS EWS 2.0)? 【发布时间】:2016-08-26 05:25:41 【问题描述】:

我正在使用 spring hibernate 开发基于 Java 的 Web 应用程序,并且正在尝试使用 OpenShift 来部署我的应用程序。但是我在为 mysql 连接器配置我的应用程序时遇到了麻烦。我在 Maven 依赖项中包含了 mysql-connector。

下面是我的maven的pom.xml文件的mysql依赖代码:

<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.25</version>
    </dependency>  

这是我的 servlet-xml 代码:

<beans:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <beans:property name="url" value="jdbc:mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/jbossews" />
    <beans:property name="username" value="$OPENSHIFT_MYSQL_DB_USERNAME" />
    <beans:property name="password" value="$OPENSHIFT_MYSQL_DB_PASSWORD" /> 
</beans:bean>

但是当我将它部署到我的 openshift 帐户并点击我的控制器的地址时,它显示以下错误:

HTTP 状态 500 - 请求处理失败;嵌套异常是 org.springframework.transaction.CannotCreateTransactionException: 无法为事务打开 Hibernate Session;嵌套异常是 org.hibernate.exception.GenericJDBCException:无法打开 连接

我一定是在 xml 文件中错误地配置了我的 MySQL 内容。

【问题讨论】:

url 值似乎缺少用于扩展环境变量的大括号。另请注意,JBoss EWS 2.0 带有用于 MySQL 和 PostgreSQL 的 pre-configured data sources;见.openshift/config/context.xml 【参考方案1】:

我得到了答案:

$env.OPENSHIFT_MYSQL_DB_HOST:$env.OPENSHIFT_MYSQL_DB_PORT/$env‌​.OPENSHIFT_APP_NAME

这些是 OpesnShift 变量。您不能将它们用于配置。它们应该替换为您为第一个所做的真实值。

【讨论】:

以上是关于如何在 Openshift Tomcat 7 (JBOSS EWS 2.0) 中设置休眠 MySQL 连接?的主要内容,如果未能解决你的问题,请参考以下文章

未找到 Openshift Tomcat 404

Tomcat 项目 WAR 未在 OpenShift 中启动

在 openshift 上将 jdbc 连接到 MySql 服务器时出现问题

AWS RHEL 7快速安装配置OpenShift

将 Openshift 上的 PostgreSQL 连接到 Amazon S3

将 JHipster 项目部署到 tomcat 服务器