在带有spring的非web应用程序中使用elasticsearch客户端

twh00eeo  于 2021-06-15  发布在  ElasticSearch
关注(0)|答案(0)|浏览(272)

我正在使用spring创建一个非web应用程序,该应用程序将从kafka读取数据并将其写入elasticsearch,我包括以下依赖项:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

以及以下配置类:

@Configuration
public class ElasticSearchConfig extends AbstractElasticsearchConfiguration{
    @Bean
    public RestHighLevelClient elasticsearchClient() {
        final ClientConfiguration clientConfiguration = ClientConfiguration.builder().connectedTo("localhost:9200")
                .build();
        return RestClients.create(clientConfiguration).rest();
    }
}

当我执行以下代码时:

@Override
public void run(String... args) throws Exception {
    IndexRequest request = new IndexRequest("test-transactions");
    request.id("2");
    request.source("{\"name\":\"Sammie\"," + "\"lastname\":\"Goldner\"," + "\"username\":\"hugh.vonrueden\","
            + "\"amount\":9622235.2009}", XContentType.JSON);

    client.index(request, RequestOptions.DEFAULT);

}

我得到以下例外:

Caused by: java.lang.ClassNotFoundException: org.springframework.http.HttpHeaders
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_251]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_251]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) ~[na:1.8.0_251]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_251]
    ... 46 common frames omitted

如果包含以下依赖项,则代码可以正常工作:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

但它带来了许多我不想在代码中使用的其他功能,有没有其他方法可以在非web应用程序中配置spring boot starter data elasticsearch?
谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题