Что писать в Procfile?

Что писать в Procfile?

Я пишу веб-приложение, используя maven для создания упаковки .war. Он прекрасно работает на моем локальном хосте, когда я использую Tomcat для создания фильма Artifact2: война взорвалась.

Однако, когда я хочу развернуть его в героку, я понятия не имею, что писать в Procfile. Когда я запускаю локальную сеть heroku, появляется следующее сообщение об ошибке

C:\Users\Alex\filmography2>heroku local web » Предупреждение: обновление heroku доступно с 7.39.1 по 7.39.2. 14:09:36 веб.1 | Неизвестно 14:09:36 web.1 | опция: -war 14:09:36 web.1 | Ошибка: не удалось создать виртуальную машину Java. 14:09:36 веб.1 | Ошибка: Произошло фатальное исключение. Программа будет закрыта. [СДЕЛАНО] Уничтожение всех процессов сигналом SIGINT 14:09:36 web.1 Выход с нулевым кодом выхода

Мой procfile выглядит так

web: java -war C:\Users\Alex\filmography2\target\filmography2-1.0-SNAPSHOT.war

Структура моего проекта выглядит так: Структура проектаЯ следую этому руководству: https://devcenter.heroku.com/articles/deploying-java#the-procfile


person Алексей Долгов    schedule 03.04.2020    source источник
comment
Когда вы открываете командную строку. Какую команду вы пишете для выполнения вашего проекта? В свой Procfile вы помещаете web: <command>   -  person Tin Nguyen    schedule 03.04.2020
comment
Мне кажется, что $JAVA_OPTS не найден или не решен.   -  person Fildor    schedule 03.04.2020
comment
Я не использую параметры Java - отредактированный вопрос, пожалуйста, взгляните еще раз на @TinNguyen   -  person Алексей Долгов    schedule 03.04.2020


Ответы (1)


Procfile должен содержать инструкцию по запуску вашего проекта.

Вот простой пример: web: java -jar path-to-my-project/target/my-project.jar

Первая часть, web, сообщает герою, какой тип процесса вы собираетесь использовать. Следующая часть рассказывает герою, как запустить ваш проект — в данном случае это .jar.

Как вы запускаете его локально? Вы строите банку и запускаете ее? Как вы отправляете его на героку? Вы «загружаете» банку и запускаете или отправляете весь свой проект/код в героку?

На их веб-сайте есть очень хорошее руководство по развертыванию приложений Java для геройку.

person Lucas Campos    schedule 03.04.2020
comment
Я создаю .war в целевой папке: C:\Users\Alex\filmography2\target\filmography2-1.0-SNAPSHOT.war. web: java -war C:\Users\Alex\filmography2\target\filmography2-1.0-SNAPSHOT.warКак вы думаете, я неправильно указал путь? должно ли это просто начинаться с цели? Выдает ошибку неопознанной опции -war: ` C:\Users\Alex\filmography2›heroku local web » Предупреждение: доступно обновление heroku с 7.39.1 до 7.39.2. 14:09:36 веб.1 | Неизвестный параметр: -war 14:09:36 web.1 | Ошибка - person Алексей Долгов; 03.04.2020
comment
Путь должен быть местом, где heroku знает об этом, так как вы собираетесь запустить его там. Ваша команда не совсем правильная, должно быть java -jar path-to-your-project/your-file.war. Можете ли вы попробовать эту команду и посмотреть? Хорошей отправной точкой является запуск в вашей локальной среде, пока вы не запустите ее через командную строку. - person Lucas Campos; 03.04.2020
comment
я должен добавить -jar, даже если я пытаюсь запустить файл .war? и если я использую Spring MVC с классом контроллера, является ли это основным атрибутом манифеста? - person Алексей Долгов; 03.04.2020
comment
Ну, это зависит... довольно сложно сказать, не зная вашего проекта, но я предполагаю, что у вас внутри есть встроенный сервер. Если это так, то бегать так нормально. Если нет, вам нужно развернуть свой файл войны на уже работающем сервере! Что касается Spring MVC и контроллеров, вам все еще нужен основной класс, который запустит ваше приложение. Вы используете весеннюю загрузку? В этом случае я бы порекомендовал следовать простому учебнику Spring... к концу этого у вас должен быть работающий .jar с правильным основным классом и контроллерами! - person Lucas Campos; 06.04.2020