spring - 使用 Spring 在非 Web 应用程序中使用 ElasticSearch 客户端
问题描述
我正在使用 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 ?
谢谢。
解决方案
推荐阅读
- c# - Nullable.GetUnderlyingType(string) returns null
- mercurial - Multiple heads in mercurial with different changesets
- symfony - 如何在 Symfony 路由中包含主题标签
- validation - Access 2016: Short-text validation rules
- jsf - 当 PrimFaces p:chips 的焦点离开时自动创建芯片的能力
- spring-cloud-contract - How to run stub-runner docker image with local repo
- ms-access - Prevent The Details Form From Openning If No Details, Access 2007
- c++ - 如何在 C++ 中将 2 的倍数乘以 2 的 10 倍?
- asp.net - 图像处理程序未加载图像
- javascript - 未找到 Microsoft ODBC 驱动程序管理器数据源名称