我想要部署到Heroku的Scala应用程序(带有Jetty的http4s)。我按照https://devcenter.heroku.com/articles/getting-started-with-scala上的说明进行操作,并将其作为我的Procfile:
web:target / universal / stage / bin / myappname
我使用sbt和sbt-native-packager构建应用程序并运行sbt compile stage
。在我运行target/universal/stage/bin/myappname
的本地计算机上,我可以使用以下日志成功启动Jetty服务器:
从端口4000开始 [main] INFO org.eclipse.jetty.util.log - 记录初始化@ 285ms
[主要] INFO org.eclipse.jetty.server.Server - jetty-9.2.3.v20140905
[main] INFO org.eclipse.jetty.server.handler.ContextHandler - 已启动o.e.j.s.ServletContextHandler@45c5082a {/,null,AVAILABLE}
[main] INFO org.eclipse.jetty.server.ServerConnector - 已启动ServerConnector @ 30ec6243 {HTTP / 1.1} {127.0.0.1:4000}
[主要] INFO org.eclipse.jetty.server.Server - 已启动@ 421ms
在Heroku上我也得到了Jetty服务器启动的日志,但是还有一个额外的超时行:
2014-11-22T19:27:53.648838 + 00:00 heroku [web.1]:使用命令`target / universal / stage / bin / myappname`开始进程 2014-11-22T19:27:54.967288 + 00:00 app [web.1]:拿起JAVA_TOOL_OPTIONS:-Xmx384m -Djava.rmi.server.useCodebaseOnly = true
2014-11-22T19:27:55.495116 + 00:00 app [web.1]:从36115号港口开始 2014-11-22T19:27:55.761411 + 00:00 app [web.1]:[main] INFO org.eclipse.jetty.util.log - 记录初始化@ 645ms
2014-11-22T19:27:56.032766 + 00:00 app [web.1]:[main] INFO org.eclipse.jetty.server.handler.ContextHandler - 已启动oejsServletContextHandler @ 397f0e73 {/,null,AVAILABLE}
2014-11-22T19:27:55.962916 + 00:00 app [web.1]:[main] INFO org.eclipse.jetty.server.Server - jetty-9.2.3.v20140905
2014-11-22T19:27:56.055280 + 00:00 app [web.1]:[main] INFO org.eclipse.jetty.server.Server - 已启动@ 967ms
2014-11-22T19:27:56.055064 + 00:00 app [web.1]:[main] INFO org.eclipse.jetty.server.ServerConnector - 已启动ServerConnector @ 1df3b191 {HTTP / 1.1} {127.0.0.1:36115}
2014-11-22T19:28:07.147193 + 00:00 heroku [router]:at = error code = H20 desc =" App boot timeout" method = GET path =" /" host = myappname.herokuapp.com request_id = c05b5bf6-6268-4c37-8525-4e58c1bda496 fwd =" 24.4.136.119" dyno = connect = service = status = 503 bytes =
我的应用程序启动的原因是什么Heroku说App启动超时?提前谢谢。
答案 0 :(得分:1)
您可能正在侦听localhost而不是0.0.0.0
答案 1 :(得分:0)
在这里寻找involving的答案error code,我有以下建议:
foreman start
http.port
)Procfile
,附加使用$ PORT的http.port
参数,如下所示: web: target/universal/stage/bin/myappname -Dhttp.port=$PORT
我怀疑如果没有这个端口设置参数,你的webapp就会在与Heroku检查的端口不同的端口上启动,因此超时。