2017-05-25 145 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