我正在尝试在我的开发机上启动两个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
。