【问题标题】:Mysql connection Tomcat 7 on OpenshiftOpenshift上的Mysql连接Tomcat 7
【发布时间】:2013-08-11 20:09:08
【问题描述】:

我在 openshift 服务器(tomcat、mysql)上部署了应用程序,但我无法连接到我的数据库(我使用 phpmyadmin 创建数据库和表)。在我的本地主机上一切正常。这是我的坚持:

<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence   http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="eshopPU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>foo.domain.Catalog</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
  <property name="javax.persistence.jdbc.url" value="mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/katalog"/>
  <property name="javax.persistence.jdbc.password" value="dyfghd"/>
  <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
  <property name="javax.persistence.jdbc.user" value="abyrewef"/>
  <property name="eclipselink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>

服务器日志: org.springframework.beans.factory.BeanCreationException:创建名为“katalogDAO”的bean时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:foo.repositories.KatalogRepository foo.repositories.KatalogDAO.katalogRepository;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“katalogRepository”的 bean 时出错:注入持久性依赖项失败;嵌套异常是 javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException 内部异常:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障

我不知道出了什么问题。感谢您的帮助。

【问题讨论】:

  • 您使用的是 JBoss EWS 2.0 卡式盒吗?如果是这样,那么在您的 repo 的 .openshift/config/context.xml 文件中有一个预配置的 DS,其中包含以下内容:
  • 抱歉格式化。注意 dbname 是您的 $appName,以及您的 db 用户凭据的 env 变量。
  • 我有 jboss 作为 7 应用程序 myapp-tjava.rhcloud.com,我在我的 context.xml 中使用它,并且 rhcloud 服务器上出现一个空白屏幕: 在本地我看到一个异常(逻辑),但是像 form.html 这样的其他资源正在工作。
  • 当我在本地替换 openshift vars 时,它正在工作,我使用的是 Tomcat
  • 为什么它不能与 Jboss AS 7 一起使用,而只能与 Jboss Ews 2.0 一起使用 context.xml?你能改变它吗?有一个很好的线程community.jboss.org/message/620652?_sscc=t,但是它不处理mysql资源元素

标签: mysql tomcat7 openshift


【解决方案1】:

好的,我解决了这个问题。在persistance.xml 和spring 配置文件中,我插入了用户和密码(属性),就像我在openshift 上的数据库连接中一样。在 url 属性中我放了:

value="jdbc:mysql://${OPENSHIFT_MYSQL_DB_HOST}:${OPENSHIFT_MYSQL_DB_PORT}/${OPENSHIFT_APP_NAME}"

并且工作正常(我使用的是 tomcat 7 和 mysql 5.1,基于 spring 3 和 thymeleaf 的应用程序)。

【讨论】:

  • 我也在尝试基于 Tomcat 和 MySQL(使用 Spring 和 Hibernate)部署我的 webapp。我在使用 OpenShift 提供的默认数据源时遇到问题,因为我已经拥有自己的文件和文件夹配置。我的应用程序在我的本地主机上运行。在 JBoss 日志中也显示了这个异常:...the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 你能给我一些关于如何配置我的项目以使用默认 DS 的指导吗?
猜你喜欢
  • 2014-06-11
  • 2016-02-04
  • 1970-01-01
  • 2015-03-02
  • 2016-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多