簡體   English   中英

Java Play 覆蓋 application.conf 中的端口

[英]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" ,它會正確讀取該值。


Java播放版本:2.8.15
SBT版本:1.6.2
插件:只有java play

根據播放文檔

在運行模式下,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM