問題是:如何檢索播放正在偵聽的端口號,而不管它是如何定義的(配置,命令行參數或完全不)。檢索Play Framework 2應用程序中的端口號
此答案Retrieving port number in-application using Play Framework必須用於Play v1,因爲該代碼無法編譯。
在播放2 Java的有:
Integer port = Play.application().configuration().getInt("http.port");
不返回實際的端口號,至少不會在所有情況下。如果Play運行如下:
run 80 -Dhttp.address=example.com
然後它返回null
。
如果Play運行爲
run -Dhttp.port 80 -Dhttp.address=example.com
然後播放默認端口(9000)上啓動。
由於biesior指出它的工作原理是提口兩次:
play -Dhttp.port=80 "run 80"
這當然不是最佳的,因爲一個是玩什麼實際使用,而另一個是它的報告。
但它會回答我的問題的開發模式。但是,正如文檔所述,Play不應該在產品中使用run
運行。那麼start
命令的等價物是什麼,並且沒有更好,更安全的方法嗎? (我感興趣的Java版本,但其他人可能想了解斯卡拉過。)
只是一個說明......你真的不應該在端口80上運行Play(至少在Unix上)。因爲這要求您以root身份運行Play,這不是一件安全的事情。 – 2013-03-04 04:55:25