播放 1.2.4.3:如何找到调试器当前使用的端口?
Posted
技术标签:
【中文标题】播放 1.2.4.3:如何找到调试器当前使用的端口?【英文标题】:Play 1.2.4.3: How to find currently used port for debugger? 【发布时间】:2014-12-17 14:26:03 【问题描述】:我有多个并行运行的 Play 应用程序。其中之一是在 Eclipse 中运行。我想连接 Eclipse 调试器(启动器“将 JPDA 连接到 myapplication.launch”),但端口每次都会更改(可能是由于其他应用程序之一阻塞了默认端口)。我会编辑启动器并手动输入当前端口*,但是:我怎么知道要使用哪个端口?
PS:由于我的应用程序运行了很长一段时间,我看不到最初显示在控制台中的端口。
*PPS:有没有更优雅的方法来处理这个问题?
【问题讨论】:
【参考方案1】:输出日志中应该有一行如下所示:
Listening for transport dt_socket at address: <some port number>
这是您需要在 Eclipse 中为 JPDA 配置的调试端口号。
【讨论】:
是的,我知道。但是这条线在输出的顶部,过了一会儿我再也看不到这条线了——或者除了控制台输出之外,还有一个文件 Play 正在登录吗? 您可以将 Play 配置为登录到文件。详情请查看documentation,特别是“配置日志级别”部分。 啊,很高兴知道,谢谢。我将配置我的应用程序,但现在我需要一种无需重新启动服务器即可找到端口的方法,因为我会丢失我的内存数据库 您知道在 Play 启动时可以加载数据吗?看看here,特别是“在应用程序中加载数据结构”部分。如果您真的不想使用内存数据库,您可以将 application.conf 中的数据库 url 更改为:test.db.url=jdbc:h2:file:~/mydata【参考方案2】:好的,在 OS X 中,您将在活动监视器中找到端口:双击每个“java”进程,直到找到属于 Eclipse 的那个。请求的端口是映射到“*”的端口。
点击here查看详细信息(德语)和截图(我需要10个声望才能发布图片或两个以上的链接)
【讨论】:
【参考方案3】:更优雅的处理方式是只定义它应该使用的 jpda 端口,因此您始终知道应用程序在哪个 jpda 端口后面运行,而不必一直查找它。它记录在the configuration manual 中,归结为在您的application.conf
中添加jpda.port=????
(当然,将问号更改为端口号)。
它们改变的原因确实是因为它们是并行运行的。如果使用默认端口,Java 会自动切换到下一个可用端口。
【讨论】:
以上是关于播放 1.2.4.3:如何找到调试器当前使用的端口?的主要内容,如果未能解决你的问题,请参考以下文章