1

我在 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:通信链路故障

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

4

1 回答 1

0

好的,我解决了这个问题。在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的应用程序)。

于 2013-08-13T16:04:20.667 回答