首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Springboot ElasticSearch配置错误

Springboot ElasticSearch配置错误
EN

Stack Overflow用户
提问于 2022-04-13 10:54:53
回答 1查看 704关注 0票数 1

我试图为弹性搜索客户端编写配置,但是我一直收到这样的错误:

应用程序启动失败

描述:

试图调用不存在的方法。这一企图是在以下地点进行的:

代码语言:javascript
复制
co.elastic.clients.transport.rest_client.RestClientOptions.initialOptions(RestClientOptions.java:179)

不存在以下方法:

代码语言:javascript
复制
org.elasticsearch.client.RequestOptions$Builder.addHeader(Ljava/lang/String;Ljava/lang/String;)Lorg/elasticsearch/client/RequestOptions$Builder;

该方法的类org.elasticsearch.client.RequestOptions$Builder,可从以下位置获得:

代码语言:javascript
复制
jar:file:/C:/Users/UtkuUslusoy/.m2/repository/org/elasticsearch/client/elasticsearch-rest-client/6.8.3/elasticsearch-rest-client-6.8.3.jar!/org/elasticsearch/client/RequestOptions$Builder.class

它从以下位置加载:

代码语言:javascript
复制
file:/C:/Users/UtkuUslusoy/.m2/repository/org/elasticsearch/client/elasticsearch-rest-client/6.8.3/elasticsearch-rest-client-6.8.3.jar

操作:

更正应用程序的类路径,使其包含单个兼容版本的org.elasticsearch.client.RequestOptions$Builder。

代码语言:javascript
复制
@Configuration
public class ElasticsearchConfiguration {

    private static final Logger logger = LoggerFactory.getLogger(ElasticsearchConfiguration.class);

    @Bean
    public ElasticsearchClient elasticsearchClient(
            @Value(value = "${com.**.**.core.configuration.**.mappingFile}") String mappingFile,
            @Value(value = "${com.**.**.core.configuration.**.indexName}") String indexName,
            @Value(value = "${com.**.**.core.configuration.**.hostName}") String hostName,
            @Value(value = "${com.**.**.core.configuration.**.port}") Integer port) throws IOException {

        final RestClient restClient = RestClient
                .builder(new HttpHost(hostName, port))
                .build();

        final ElasticsearchTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper());

        final ElasticsearchClient client = new ElasticsearchClient(transport);

        final InputStream stream = new ClassPathResource(mappingFile).getInputStream();

        final CreateIndexRequest request = new CreateIndexRequest.Builder().index(indexName).withJson(stream).build();

        try { client.indices().create(request); } catch (Throwable exception) { /* Intentionally left blank */ }

        if (logger.isDebugEnabled()) logger.debug("Elasticsearch initialization complete");

        return client;
    }
}

Springboot版本:2.2.0 Version

pom.xml:

代码语言:javascript
复制
<dependencies>

    <!-- https://mvnrepository.com/artifact/co.elastic.clients/elasticsearch-java -->
    <dependency>
        <groupId>co.elastic.clients</groupId>
        <artifactId>elasticsearch-java</artifactId>
        <version>7.17.2</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.12.3</version>
    </dependency>

    <!-- Needed only if you use the spring-boot Maven plugin -->
    <dependency>
        <groupId>jakarta.json</groupId>
        <artifactId>jakarta.json-api</artifactId>
        <version>2.0.1</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework.integration/spring-integration-amqp -->
    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-amqp</artifactId>
    </dependency>

    <dependency>
        <groupId>com.**.**</groupId>
        <artifactId>aml-core</artifactId>
        <version>${**.aml.version}</version>
    </dependency>

</dependencies>

<properties>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
    <elasticsearch-version>7.17.2</elasticsearch-version>
</properties>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-13 11:05:24

代码语言:javascript
复制
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-client</artifactId>
            <version>7.17.2</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.elasticsearch.client/transport -->
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>7.17.2</version>
        </dependency>

把这些加到你的饮料里。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71856300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档