我有一個 Spring Boot Elasticsearch 應用程式,該應用程式具有現已棄用的 High Level Rest Client。我正在嘗試將現有查詢/方法遷移到新的 Java API 客戶端,但希望保留 HLRC 一段時間(以防我破壞任何東西)。
我似乎遇到了一個我沒有得到的依賴問題。我目前收到java.lang.NoClassDefFoundError: org/elasticsearch/xcontent/ToXContentObject
我認為是由于兼容性問題引起的錯誤。這些是我當前的(相關)依賴項:
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.17.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>4.3.4</version>
</dependency>
Elasticsearch 在 7.17 上。至于 maven 依賴項......我真的不知道要使用什么版本,以便在我測驗新代碼時它仍然可以運行舊的 HLRC?(所以我將版本設定為可能的最新版本)
編輯資訊:
- 當前的 Spring Boot 版本是 2.2.8
- 在手動設定版本之前,org.elasticsearch.client 是 6.8.x
- 我的方法是愚蠢的,我應該放棄所有的 HLRC 以支持實作/測驗 Java API 客戶端嗎?
任何指標/修復表示贊賞!
uj5u.com熱心網友回復:
如果我沒記錯的話,在 7.15 或 7.16 版本中,Elasticsearch 發生了重大變化,將 xcontent 類移動到不同的包中。您不能將 Spring Data Elasticsearch 4.3.x 與 Elasticsearch 7.17 一起使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/470028.html
上一篇:使用Maven運行TestNG