我正在尝试使用此文档自动配置elasticsearch高级rest客户端
我在application.properties中添加了以下属性:
spring.elasticsearch.rest.uris=https://hostname.com
spring.elasticsearch.rest.read-timeout=10s
spring.elasticsearch.rest.username= user
spring.elasticsearch.rest.password= password我在pom.xml中添加了这些依赖项
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>${elasticsearch.version}</version>
</dependency>和一个属性
<elasticsearch.version>7.2.1</elasticsearch.version>在我的应用程序中,我这样做了
@Configuration
@EnableAutoConfiguration
@SpringBootApplication
@ComponentScan
public class MainClass {
public static void main(String[] args) {
SpringApplication.run(MainClass.class, args);
}
}但是当我尝试使用HighLevelClient时,它会给出NullPointerException
@Autowired
private RestHighLevelClient client;我是不是遗漏了什么?
发布于 2019-12-22 21:32:12
您应该为NullPointerException添加堆栈跟踪。
您没有编写您使用的版本(Spring Boot、Spring Data Elasticsearch)。但目前的Spring Boot 2.2.2针对的是Spring Data Elasticsearch 3.2.x,它使用Elasticsearch 6.8.5。所以这不适用于Elasticsearch 7集群。下一个版本将支持Elasticsearch 7 (Spring Data Elasticsearch 4.0)
发布于 2020-01-06 19:55:12
我希望您使用的是spring-boot-autoconfigure依赖项,因为RestHighLevelClient bean是由这个库基于类路径中存在的RestHighLevelClient进行初始化的。检查依赖关系树中是否存在spring-boot-autoconfigure。
https://stackoverflow.com/questions/59431917
复制相似问题