我正試圖將我的Spring Boot應用程序連接到本地elasticsearch 5.2.1實例。當我使用「org.springframework.boot:彈簧引導起動數據elasticsearch」依賴,我面對與「從不支持的版本收到的消息:[2.0.0]最小兼容版本是:[5.0.0]「。我認爲這是由於elasticsearch版本是2.4.4的入門者依賴。所以要解決這個錯誤,我編輯pom.xml屬性,加入elasticsearch.version> 5.2.1/elasticsearch.version>一行。但是,這一次我得到 「java.lang.NoSuchMethodError:org.elasticsearch.client.transport.TransportClient.builder()」如何使用elasticsearch 5.2.1配置Spring Boot?
爲了解決這個問題,創建自定義配置類象下面這樣:
@Configuration
public class ElasticsearchConfiguration {
@Bean
public Client client() throws UnknownHostException {
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));
return client;
}
@Bean
public ElasticsearchTemplate elasticsearchTemplate() throws UnknownHostException {
return new ElasticsearchTemplate(client());
}
}
這一次我得到apache.logging.log4j異常(check here),所以我添加必要的依賴關係。
最後,我得到下面的錯誤,並在那裏停滯。任何人都可以幫我解決這個問題嗎?
嵌套的例外是java.lang.NoClassDefFoundError:組織/ elasticsearch /動作/計數/ CountRequestBuilder