用于Springboot应用程序的Heroku Procfile Web进程

时间:2020-06-26 03:25:43

标签: heroku

我正在将Springboot应用程序部署到Heroku并收到以下错误消息:

2020-06-26T09:26:58.880610 + 00:00 heroku [web.1]:状态从开始更改为>崩溃 2020-06-26T12:16:58.291701 + 00:00 heroku [web.1]:状态从崩溃更改为>正在启动 2020-06-26T12:17:05.611518 + 00:00 heroku [web.1]:使用命令> java -war target/InfinityBank-1.0.war启动进程 2020-06-26T12:17:08.625648 + 00:00 app [web.1]:设置JAVA_TOOL_OPTIONS默认值>基于dyno大小。自定义设置将覆盖它们。 2020-06-26T12:17:08.635316 + 00:00 app [web.1]:拾取JAVA_TOOL_OPTIONS:-> Xmx300m -Xss512k -XX:CICompilerCount = 2 -Dfile.encoding = UTF-8 2020-06-26T12:17:08.635417 + 00:00 app [web.1]:无法识别的选项:-war 2020-06-26T12:17:08.635449 + 00:00 app [web.1]:错误:无法创建Java>虚拟机。 2020-06-26T12:17:08.635471 + 00:00 app [web.1]:错误:发生致命异常。程序将会退出。 2020-06-26T12:17:08.710255 + 00:00 heroku [web.1]:进程退出,状态为1 2020-06-26T12:17:08.767963 + 00:00 heroku [web.1]:状态从开始更改为>崩溃

我的Procfile似乎有问题。这是Procfile内的唯一一行:

web: java -war target/InfinityBank-1.0.war

这是我感到困惑的地方。我实际上不知道应为我的应用程序使用什么Web进程。

Heroku网站上的一篇文章说应该是

这可能是可执行Java JAR文件的Web进程类型,例如在使用Spring Boot时:

web: java -jar target/myapp-1.0.0.jar 

文章链接:https://devcenter.heroku.com/articles/procfile#more-process-type-examples

我不确定这对我来说意味着什么。我在源代码中的任何地方都看不到这样的jar文件。如果有关系,我的应用程序是战争包装。

1 个答案:

答案 0 :(得分:0)

我终于弄清楚了这一点,以防有人遇到同样的问题。您可以在pom.xml文件中找到jar文件。例如,如果您在pom.xml文件中找到此部分


<groupId>space.earth</groupId>
    <artifactId>InfinityBank</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>InfinityBank</name>
    <description>Demo project for Spring Boot</description>

Procfile中的jar文件应为

web: java -jar target/InfinityBank-0.0.1-SNAPSHOT.jar

将jar打包Springboot应用程序部署到Heroku的另一个技巧是包含

server.port=${PORT:8080}

在application.properties文件中。