У меня есть приложение Spring Boot + Elasticsearch, в котором был устаревший клиент отдыха высокого уровня. Я пытаюсь перенести существующие запросы/методы в новый клиент 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, пока я тестирую новый код? (Поэтому я установил версии на самые новые из возможных)
Редактировать информацию:
Любые указатели/исправления приветствуются!
Если я правильно помню, это было в версии 7.15 или 7.16, когда в Elasticsearch было критическое изменение, перемещающее классы xcontent в другой пакет. Вы не можете использовать Spring Data Elasticsearch 4.3.x с Elasticsearch 7.17.
о, нет~ Я тоже читал что-то подобное в другом месте, но я не смог узнать больше, будет ли Spring Data Elasticsearch доступен в более поздних версиях... Я предполагаю, что это невозможно, и просто реструктурировать, я думаю? Спасибо за подтверждение!