为什么Heroku上的Spray应用程序失败并显示“错误R10(引导超时)-> Web进程在启动后60秒内未能绑定到$ PORT”

风车

我使用Typesafe Config配置来获取如下环境变量:

service {
   host = "localhost"
   host = ${?HOST}
   port = 8080
   port = ${?PORT}
     ports {
       tcp = 6969
       ws = 6696
     }
 }

在我的书中,我Boot.scala写道:

  val host = config.getString("service.host")
  val portHTTP = config.getInt("service.port")
  val rootService = system.actorOf(Props(new RootService()))

  IO(Http) ! Http.Bind(rootService, interface = host, port = portHTTP)

这应该很好!我看到了heroku log信息:

2014-08-30T17:39:38.867872+00:00 app[web.1]: [spray-blog-akka.actor.default-dispatcher-4] [akka://spray-blog/user/IO-HTTP/listener-0] Bound to localhost/127.0.0.1:25870
2014-08-30T17:40:37.007696+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

似乎我已经绑定到特定端口:Bound to localhost/127.0.0.1:25870,但是60秒后Heroku仍然说我没有及时绑定到它!

我从Heroku提供的示例应用中复制并粘贴了我的启动脚本: web: target/start com.mturk.Boot -Dhttp.port=${PORT} -Dconfig.file=conf/application.conf

我不知道是什么问题!太沮丧了!!

赫克

我相信Heroku会告诉您必须使用的端口。您可以在Boot.scala中使用额外的代码从Heroku中获取$ PORT环境变量。

val myPort = Properties.envOrElse(“ PORT”,“ 8080”)。toInt //用于Heroku兼容性

IO(Http)(系统)!Http.Bind(rootService,“ 0.0.0.0”,port = myPort)

当然,您可能需要额外导入:

导入实用程序属性

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档