问题是:如何检索播放正在侦听的端口号,无论它是如何定义的(配置,命令行参数,或根本没有).
此答案使用Play Framework检索应用程序中的端口号必须是Play v1,因为该代码无法编译.
在Play 2 Java中有:
Integer port = Play.application().configuration().getInt("http.port");
Run Code Online (Sandbox Code Playgroud)
这不会返回实际的端口号,至少在所有情况下都不会.如果Play运行如下:
run 80 -Dhttp.address=example.com
Run Code Online (Sandbox Code Playgroud)
然后它返回null.
如果Play运行为
run -Dhttp.port 80 -Dhttp.address=example.com
Run Code Online (Sandbox Code Playgroud)
然后在默认端口(9000)上开始播放.
正如biesior指出的那样,两次提到港口是有效的:
play -Dhttp.port=80 "run 80"
Run Code Online (Sandbox Code Playgroud)
这当然不是最佳的,因为一个是Play实际使用的,另一个是它报告的内容.
但它会回答我关于开发模式的问题.但是,正如文档所说,Play永远不应该使用runprod 运行.那么start命令的等价物是什么,没有更好,更安全的方法吗?(我对Java版本很感兴趣,但其他人也可能想了解Scala.)
在开发模式下运行,您需要使用双倍表示法
play -Dhttp.port=80 "run 80"
Run Code Online (Sandbox Code Playgroud)
不幸的是,您必须对默认端口执行相同的操作
play -Dhttp.port=9000 "run 9000"
Run Code Online (Sandbox Code Playgroud)
所以我只是建议编写 shell 脚本(或 Windows 中的 .bat),以便轻松启动所有必需的参数。
| 归档时间: |
|
| 查看次数: |
3023 次 |
| 最近记录: |