ste*_*ess 6 java heroku spring-boot
我创建了一个 Spring Boot Web 应用程序(在 IntelliJ IDEA 中),它在本地运行没有问题。
然后我构建了一个工件(Build -> Build Artifacts... -> my_app:jar -> Build),它在目录“out”中创建了一个 jar 文件。
我尝试完全按照 heroku 在本演练中描述的步骤将应用程序部署到 heroku:https ://devcenter.heroku.com/articles/deploying-spring-boot-apps-to-heroku
注意:演练没有提到 Procfile,所以我没有创建一个。
在浏览器中打开应用程序的地址时,我遇到了“应用程序错误”。
日志显示构建应用程序成功,但显然“没有网络进程正在运行”:
2020-02-06T20:42:19.262364+00:00 app[api]:由用户 michaels@icloud.com 创建的 Release v1 2020-02-06T20:42:19.598724+00:00 app[api]:由用户创建的 Release v2用户 michaels@icloud.com 2020-02-06T20:42:19.262364+00:00 app[api]:用户 michaels@icloud.com 2020-02-06T20:42:19.598724+00:00 app[api] 的初始版本:由用户 michaels@icloud.com 启用 Logplex 2020-02-06T20:46:11.000000+00:00 app[api]:由用户 michaels@icloud.com 2020-02-06T20:46:56.626428+00:00 开始构建app[api]:发布 v3 由用户 michaels@icloud.com 2020-02-06T20:46:56.626428+00:00 app[api]:由用户 michaels@icloud.com 部署 93b6dfea 2020-02-06T20:47: 04.000000+00:00 app[api]: 构建成功 2020-02-06T20:48:22.485742+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path=" /" 主机=我的应用程序。herokuapp.com request_id=22e30a92-5094-4f8b-a51c-3f21177b19dc fwd="95.88.203.176" dyno=connect=service=status=503 bytes=protocol=https
我使用以下命令检查了 dyno 是否正在运行:
heroku ps
Run Code Online (Sandbox Code Playgroud)
结果:
没有测功机?无限天空81114
然后我运行以下命令来启动一个 dyno:
heroku ps:scale web=1
Run Code Online (Sandbox Code Playgroud)
结果:
缩放动态...!? 找不到该进程类型 (web)。
因此该应用程序无法运行,因为没有 dyno - 但我无法启动 dyno。
我怎样才能使这项工作?
假设您使用的是 JAR,Procfile默认情况下将创建。你确定你的网络测功机还在运行吗?如果您使用的是 cli,则可以检查 usingheroku ps以查看状态。如果它说没有 dynos,您可以扩大使用规模heroku ps:scale web=1并尝试heroku open启动应用程序。
如果您使用 WAR,您可以关注https://devcenter.heroku.com/articles/war-deployment,是的,您需要 Procfile。
此外,在独立 tomcat 上运行 spring boot 应用程序时,不要忘记按照此处的步骤操作https://docs.spring.io/spring-boot/docs/2.1.10.RELEASE/reference/html/howto-traditional-deployment。 html
以下是我在进行 spring boot heroku 集成时拍摄的一些屏幕截图。
Pom(带有 WebRunner 插件)
Demo Application(注意SpringBootServletInitializer的使用)。如果你不使用它,你会得到 404。