我想用 Elasticsearch 的新 Java API 客户端替换已弃用的高级 Rest 客户端。问题是,我不确定我的依赖项是否配置正确!我遇到了这个错误:
java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/util/JacksonFeature
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.core.util.JacksonFeature
Run Code Online (Sandbox Code Playgroud)
Elasticsearch 刚刚升级到 7.17.3,Spring Boot 现在是 2.2.8,稍后会升级,但我不确定这是否是问题所在?这是我在 pom 中的依赖项:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-webmvc-core</artifactId>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-security</artifactId>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>co.elastic.clients</groupId>
<artifactId>elasticsearch-java</artifactId>
<version>7.17.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.2</version>
</dependency>
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
<version>2.1.0</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
我按照Elasticsearch的文档进行操作,因此我也尝试使用 2.12.3 版本的 jackson-databind,但错误仍然存在。知道应该改变什么吗?谢谢!
编辑:以防万一它有帮助,这也是我的客户,这是需要依赖项的地方(我假设)
@Configuration
public class ElasticsearchClient{
RestClient restClient = RestClient.builder(new HttpHost("localhost", 9200)).build();
ElasticsearchTransport transport = new …Run Code Online (Sandbox Code Playgroud)