Я создал файл .war для своего приложения SpringMVC + Maven + Hibernate + MySQL, которое отлично работало на локальном хосте и в локальной базе данных MySQL. Я настраиваю базу данных с помощью файла WebAppConfig.java, который просматривает файл application.properties и извлекает соответствующую информацию.
Затем я создал учетную запись OpenShift и развернул этот файл .war. Я добавил картриджи MySQL и PHPMyAdmin, чтобы иметь возможность поддерживать базу данных. Когда я пытаюсь получить информацию или отправить ее в базу данных через свое приложение, я получаю эту ошибку.
Состояние HTTP 500 — Ошибка обработки запроса; вложенным исключением является org.springframework.transaction.CannotCreateTransactionException: не удалось открыть сеанс Hibernate для транзакции; вложенным исключением является org.hibernate.exception.JDBCConnectionException: не удалось открыть соединение
сообщение Не удалось обработать запрос; вложенным исключением является org.springframework.transaction.CannotCreateTransactionException: не удалось открыть сеанс Hibernate для транзакции; вложенным исключением является org.hibernate.exception.JDBCConnectionException: не удалось открыть соединение
Exception org.springframework.web.util.NestedServletException: Ошибка обработки запроса; вложенным исключением является org.springframework.transaction.CannotCreateTransactionException: не удалось открыть сеанс Hibernate для транзакции; вложенным исключением является org.hibernate.exception.JDBCConnectionException: не удалось открыть соединение org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948) ) 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, а не эти заполнители!