我有一个我想部署到Heroku的Scala应用程序(http4s with Jetty)。我也跟着上https://devcenter.heroku.com/articles/getting-started-with-scala的指示,有这个作为我Procfile:Scala应用程序在Heroku上得到“应用程序启动超时”
网:目标/通用/台/箱/ myappname
我建立使用的应用程序与SBT-本机打包和运行SBT sbt compile stage
。在我的本地机器上,当我运行target/universal/stage/bin/myappname
我可以用下面的日志成功启动Jetty服务器:
开始在端口4000
[主] INFO org.eclipse.jetty.util.log - 记录初始化@ 285ms
[main] INFO org.eclipse.jetty.server.Server - jetty-9.2.3.v20140905
[main] INFO org.eclipse.jetty.server.handler.ContextHandler - 已启动oejsServletContextHandler @ 45c5082a {/,null ,AVAILABLE}
[main] INFO org.eclipse.jetty.server.ServerConnector - Started 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 - Started @ 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 =连接=服务=状态= 503个字节=
什么是我的应用程序还没有开始说的Heroku应用程序启动超时的原因是什么?提前致谢。
对于我来说,改变'BlazeBuilder.bindHttp(Properties.envOrElse( “PORT”, “8080”)。toInt)''来BlazeBuilder.bindHttp (Properties.envOrElse(“PORT”,“8080”)toInt,“0.0.0.0”)'解决了这个问题(我使用Blaze后端代替Jetty,但它应该没有区别)。 – 2015-11-13 13:41:34