ElasticSearchHighLevelClient springboot自动配置不起作用

时间:2019-12-20 22:19:24

标签: spring-boot elasticsearch spring-data-elasticsearch

我正在尝试使用此文档自动配置Elasticsearch高级Rest客户端

https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-elasticsearch

我在我的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;

我想念什么吗?

1 个答案:

答案 0 :(得分:0)

您应该为NullPointerException添加堆栈跟踪。

您没有写下使用的版本(Spring Boot,Spring Data Elasticsearch)。但是当前的Spring Boot 2.2.2针对使用Elasticsearch 6.8.5的Spring Data Elasticsearch3.2.x。因此,这不适用于Elasticsearch 7集群。下一版本(Spring Data Elasticsearch 4.0)随附对Elasticsearch 7的支持