[英]Java Play overwrites port in application.conf
我想在application.conf
文件中指定 Java Play 在其上公開其端點的端口 – application.conf
的完整片段,格式取自 Java Play 文檔
play.server.http.port = 5511
但是,如果我運行命令
sbt run
暴露的端口是 9000,而不是 5511。
我能夠通過運行來實現正確的行為
sbt run -Dhttp.port=5511
所以application.conf
肯定有問題。 如果我嘗試以編程方式讀取該值,例如從控制器讀取,它也會得到錯誤的值 9000。但是,如果我向application.conf
添加一些人為的值,例如foo = "ABC"
,它會正確讀取該值。
根據播放文檔:
在運行模式下,Play的 HTTP 服務器部分在應用程序編譯之前啟動。 這意味着 HTTP 服務器在啟動時無法訪問 application.conf 文件。 如果您想在使用 run 命令時覆蓋 HTTP 服務器設置,則不能使用 application.conf 文件
我建議你這樣做sbt run -Dhttp.port=5511
正如你之前所說的那樣。 如果您擔心每次使用 run 任務傳遞參數,那么您只能在build.sbt
文件中更改您的根項目設置一次。 不要忘記sbt reload
以便您的build.sbt
更改生效。
lazy val root = (project in file(".")).enablePlugins(PlayJava)
.settings(PlayKeys.playDefaultPort := 5511)
另一種選擇:您可以在 build.sbt 文件中添加以下行
PlayKeys.devSettings += "play.server.http.port" -> "8080"
我沒有直接的解釋,但如果你在application.conf
文件中http.port
變量,而不是直接play.server.http.port
,那就可以了。
可以在文件中找到線索,在生產配置頁面上,由
上面的配置特定於 Akka HTTP 和 Netty 服務器后端
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.