1. 相關環境
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
2. 問題
當引入了spring-boot-start-actuator對項目中elasticsearch進行健康檢查時報錯:java.lang.NoClassDefFoundError: org/elasticsearch/client/Request
問題排查:
到這個包org.elasticsearch.client中去找,發現確實沒有Request類
這個包是在引入spring-boot-starter-data-elasticsearch的時候一起引入進來的
試圖改變包的版本,發現只有最新版本2.2.0中包含了org.elasticsearch.client.Request類
但是當我們把版本改到2.2.0的時候又會有新的錯誤,直接報: java.net.ConnectException: Connection refused
,
elasticsearch連不上了。
改變actuator的版本同樣不能解決問題。
3. 解決辦法
方法一
spring.data.elasticsearch.cluster-name=docker-cluster-50 spring.data.elasticsearch.cluster-nodes=ip:9300 spring.elasticsearch.rest.uris=["http://ip:9200"]
方法二
management.health.elasticsearch.enabled=false