当前位置: 首页 > 知识库问答 >
问题:

创建RestHighLevelClient bean时出错

杨鸿畅
2023-03-14

我在SpringBoot应用程序中创建HighHendRestClient bean时遇到一个错误。我已经做了一个测试'app',在那里我检查了我可以实例化我想要的对象,然后进行我想要的调用,我现在正在做一个新的应用程序的婴儿步骤。

    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-client</artifactId>
        <version>5.6.3</version>
    </dependency>

    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>5.6.3</version>
    </dependency>
@Configuration
@PropertySource(value = "classpath:application.properties")
@EnableElasticsearchRepositories(basePackages = "com.indexbuilder.es.repo")
public class ElasticsearchConfiguration {
    @Value("${elasticsearch.host}")
    private String EsHost;

    @Value("${elasticsearch.port}")
    private int EsPort;

    @Value("${elasticsearch.clustername}")
    private String EsClusterName;


    @Bean
    public RestClientBuilder coreBuilder() throws Exception {
        RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));
        builder.setMaxRetryTimeoutMillis(10000);

        builder.setFailureListener(new RestClient.FailureListener() {
            @Override
            public void onFailure(HttpHost host) {
                System.out.println("FAILURE !!!! FailureListener HAS WOKEN UP!!!! CREATYE A FAILURE LISTENER BEAN" );
            }
        });

        return builder;
      }

    @Bean
    public RestClient restLowLevelClient() throws Exception{
        RestClient restClient = coreBuilder().build();
        return restClient;
    }

就我所能看到的(我还没有用它做太多...)

当我添加它时(最初我传入了RestClient bean,但现在我临时创建了一个本地对象,以便更清晰)

    @Bean
    public RestHighLevelClient restHighLevelClient() throws Exception{
        RestClient restClient = coreBuilder().build();
        RestHighLevelClient client = new RestHighLevelClient(restClient);
        return client;
    }

我得到这个java.lang.NoClassDefoundError错误

共有1个答案

贺正祥
2023-03-14

您可能还需要核心依赖项:

<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>5.6.3</version>
</dependency>

NoClassDefoundError通常是一个配置错误--这意味着您使用的代码引用了某个类,但类本身不在类路径中。在这种情况下,这也可能是相关的Elasticsearch POM本身的依赖关系管理错误,因为它们应该包括所需的类--但是除了提交一个问题之外,您没有什么可以做的。

 类似资料:
  • 我有一个带有Spring Data JPA的Web应用程序。我为一些实体创建了扩展JpaRepository的存储库。但是,当我尝试部署应用程序时,会遇到以下错误。不知道为什么会抛出错误 应用程序错误日志: pom.xml 应用程序上下文.xml persistence.xml JpaRepostory接口

  • 我试图编译一个非常简单的程序,将包含3个用户的简单表保存到http://localhost/phpmyadmin,以清空名为,users ' '的数据库,但它仍然显示异常,您可以看到。 1个异常org.springframework.beans.factory。BeanCreationException:创建在类路径资源[org/springframework/boot/autoconfigure

  • 当我启动Weblogic时(使用jar:hibernate-core-4.3.6.final.jar和hibernate-jpa-2.1-api-1.0.0.final.jar),遇到以下错误信息: 无法自动连接字段:private org.hibernate.sessionFactory com.nscorp.lars.shopleveling.core.dao.impl.Dataloaddao

  • 我使用的是Spring 3.1.4 服务实现 DAO实现 web.xml

  • 现在我正在尝试用spring MVC配置jpa数据。但是我在tomcat服务器上尝试执行时遇到了异常。 有人能指导我解决这个吗?谢谢

  • 严重:上下文初始化失败org.springframework.beans.factory.BeanCreationException:创建ServletContext资源[/web-inf/mvc-dispatcher-servlet.xml]中定义的名为“org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerM