2016-07-27 3 views
0

У меня ошибка при развертывании приложения с помощью «git push master heroku», в то время как локально он отлично работает. Я хочу использовать persistence.xml для доступа к базе данных моего Н2 (я буду использовать, может быть, PostgreSQL), все с моим источником данных о WildFly 10.Развертывание в Heroku с моим persistence.xml (JPA) без использования Spring

Я не нашел никаких ссылок, кроме весны. (Я не могу это использовать)

Спасибо!

+0

dup https://stackoverflow.com/questions/38603284/heroku-deploy-with-java-jpa-not-use-spring –

+0

Приветствую вас, пожалуйста, я хочу найти ошибку. –

ответ

1

Я развернул веб-приложение JavaEE (с jsf, javabean, ejb, di и т. Д.) На Heroku. Heroku будет позволяет запускать сценарий оболочки для запуска вашего приложения как класс с основным методом или исполняемым .jar-файлом. Не на предварительно установленном сервере приложений fullstack. Также, если вы запустите java-приложение на Heroku, ваш проект должен быть maven.

Чтобы заставить его работать из командной строки вы можете использовать облако готовый бежать куда угодно крошечные серверы, как payara-micro, wildfly-swarm, spring-boot. Он превращает ваше приложение и сервер в единую исполняемую банку (Uber JAR). Также в котте и причале есть обертки для сборки uberJar.

Я использую payara-micro, и это здорово, что очень маленькая банка может запускать почти все функции JavaEE с репликацией сеанса. Следуйте по этой ссылке для получения инструкций payara-micro how to (читайте также разделы maven).

Когда вы нажмете на Heroku (с помощью инструмента heroku cli), он автоматически построит ваш проект и запустит сценарий из файла Procfile из корневого каталога вашего проекта. Образец PROCFILE:

web: java -jar target/myapp.jar --port $PORT

Рассмотрим $PORT часть из выше фрагмента кода. Когда запускается Heroku (dyno), он откроет случайный порт (я так думаю) и привяжу к переменной среды $PORT. Итак, здесь я , проезжая, чтобы получить доступ к порту payara-micro для прослушивания. Другие упомянутые серверы должны работать с аналогичными процедурами. Вы можете найти документацию на heroku devcenterr

Для JPA и подключения к базе данных Heroku предоставляет JDBC_DATABASE_URL и DATABASE_URL переменные окружения, которые имеют информацию о соединении (URL и т.д.) для вас в connect database. Я не могу найти способ подключить эти переменные к persistence.xml. Но вы можете создавать и настраивать EntityManagerFactory и EntityManager программно.

Надеюсь, что это поможет.