我为我的SpringMVC + Maven + Hibernate + MySQL应用程序生成了一个.war文件,该应用程序在本地主机和本地MySQL数据库上工作得非常好。我配置数据库的方式是通过WebAppConfig.java文件来查看application.properties文件并检索相应的信息。OpenShift应用程序无法连接到MySQL:JDBCConnectionException:无法打开连接
然后,我创建了一个OpenShift帐户,并部署了.war文件。我添加了MySQL和PHPMyAdmin盒式磁带,因此我可以维护一个数据库。当我尝试检索信息或通过我的应用程序推送到数据库时,我收到此错误。
HTTP状态500 - 请求处理失败;嵌套异常是org.springframework.transaction.CannotCreateTransactionException:无法打开Hibernate Session进行事务处理;嵌套的异常是org.hibernate.exception.JDBCConnectionException:无法打开连接
消息请求处理失败;嵌套异常是org.springframework.transaction.CannotCreateTransactionException:无法打开Hibernate Session进行事务处理;嵌套的例外是org.hibernate.exception.JDBCConnectionException:无法打开连接
例外 org.springframework.web.util.NestedServletException:请求处理失败;嵌套的例外是org.springframework.transaction.CannotCreateTransactionException:无法打开Hibernate的Session的交易;嵌套异常是org.hibernate.exception.JDBCConnectionException:无法打开连接 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java :838) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) javax.servlet.http.HttpServlet.service( HttpServlet.java:722)
我已经在我的属性文件中为我的数据库添加了相应的信息,所以我不认为这是问题所在。
application.properties
#DB
db.driver = com.mysql.jdbc.Driver
db.url = jdbc:mysql://{OPENSHIFT_MYSQL_DB_HOST}:{OPENSHIFT_MYSQL_DB_PORT}/springmvc
db.username = {OPENSHIFT_MYSQL_DB_USERNAME}
db.password = {OPENSHIFT_MYSQL_DB_PASSWORD}
#Hibernate
hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
hibernate.show_sql = true
entitymanager.packages.to.scan = org.example.app.model
hibernate.cache.provider_class = org.hibernate.cache.NoCacheProvider
注:在我实际的代码我有实际的OPENSHIFT_MYSQL_DB_HOST和OPENSHIFT_MYSQL_DB_PORT值不是那些占位符!
感谢您的回复,我一定会在我原来的文章中添加application.properties文件!我还确保mysql盒式磁带实际上已启动并正在运行。 – user1395446
感谢您添加应用程序属性。请不要使用root/pass;而是使用添加mysql盒式磁带时提供给您的信息,或者您可以使用环境变量:OPENSHIFT_MYSQL_DB_USERNAME/OPENSHIFT_MYSQL_DB_PASSWORD –
对不起,我应该已经更清楚了,在我的代码中,我确实使用通过openshift提供的内容,而不是根/过关!我只是不想在这里张贴传递我猜:) – user1395446