2017-05-25 99 views
1

我在Heroku上部署嵌入式码头应用程序,并在端口80上侦听http。然而,在启动时我读System.getenv( “PORT”)值,并使用该端口值初始化码头服务器,像这样:Heroku部署:嵌入式码头端口

if (isproduction) { 
     LOGGER.log(Level.INFO, "System.getenv(\"PORT\"):{0}", System.getenv("PORT")); 
     port = Integer.valueOf(System.getenv("PORT")); 
     baseurl = "http://xxxx-xxxx.herokuapp.com"; 
    } 

    LOGGER.log(Level.INFO, "Starting jetty on port: {0}", port); 
    final Server jettyServer = new Server(port); 
    jettyServer.setHandler(context); 

上面打印

2017-05-25T17:34:02.943531+00:00 app[web.1]: INFO: System.getenv("PORT"):45203 
2017-05-25T17:34:02.945234+00:00 app[web.1]: INFO: Starting jetty on port: 45203 

然而,从heroku open命令行在端口80打开应用程序。这不是一个真正的问题(应用程序完全可操作),但这是意外的行为。任何人都可以了解发生了什么事情?

回答

0

看着itscode,heroku open不支持自定义端口。

+0

好吧,但事情是,我的不是一个自定义的端口。 System.getenv(“PORT”)是Heroku在启动时设置的一个环境变量。此外,问题是为什么当码头服务器开始使用不同的端口时,应用程序监听端口80 – chrisl08

+0

您在80上听什么意思?你怎么看? – Bartosz

+0

我打开一个浏览器并访问部署在heroku上的jetty站点的欢迎页面 – chrisl08