我正在尝试在我的开发机上启动两个spring-boot(1.3.2.RELEASE)应用实例。该应用程序通过spring数据elasticsearch(1.3.2.RELEASE)使用内嵌的Elasticsearch(1.5.2)。

我将实例配置为使用不同的端口(-Dserver.port=8081),这对于没有 flex 搜索的其他应用程序也能很好地工作。

所以,我的第一个实例正常启动,而第二个实例启动

Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 54022; nested exception is:
java.net.BindException: Address already in use

我试图从日志中获取更多信息,但没有帮助。
logging.level.org.elasticsearch=TRACE

我什至试过
logging.level.root=TRACE

没有提及端口54022。Google也没有太大帮助。

更新:我在STS中启动实例。关闭实例时(控制台 View 中的红色方形按钮),我看到STS连接到54022端口。也许是某种关机端口?
andrey:~$ lsof -i tcp:54022STS 447 andrey 36u IPv6 0xf4ba94cfea1e25e5 0t0 TCP localhost:49424->localhost:54022 (CLOSE_WAIT)

最佳答案

此问题特定于STS IDE(Spring工具套件)。如果从控制台运行该应用程序,则无法复制。

54022是STS的JMX Port

要解决此问题,请转到Run > Run Configurations... > Spring Boot App > <your_run_config> > Spring Boot (Tab)

切换Enable Live Bean支持或更改JMX Port

07-27 20:16