elasticsearch - 具有Elasticsearch嵌入式功能的Spring Boot在端口54022上发生冲突

标签 elasticsearch spring-boot spring-data-elasticsearch

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

关于elasticsearch - 具有Elasticsearch嵌入式功能的Spring Boot在端口54022上发生冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35288384/

相关文章:

maven - Dart 与 Maven(在 Spring Boot 应用程序中)

elasticsearch - 如何在Elasticsearch Spring Data中使用StringQuery

elasticsearch - 使用Spring Boot + Spring Data Elasticsearch的嵌套文档和父/子设置

php - Elasticsearch for laravel-获取与一个或多个类别匹配的文档?

用于连字符、下划线和数字的 Elasticsearch 自定义分析器

json - 使用Spring Boot从Elasticsearch中查询不可预测的JSON对象

spring-data - 如何使用 Spring Data 为 Elastic Search 设置 _id 字段

scala - EsHadoopIllegalArgumentException:无法检测ES版本Spark-ElasticSearch示例

java - 当类不是 Bean 时,如何在字段变量上使用 @Autowired?

java - 将 ObjectMapper 注入(inject) Spring Kafka 序列化器/反序列化器