Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NoSuchBeanDefinitionException:没有名为';elasticsearchTemplate';使用自动配置时可用_Java_Spring Boot_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Spring Data_Spring Autoconfiguration - Fatal编程技术网 elasticsearch,spring-data,spring-autoconfiguration,Java,Spring Boot,elasticsearch,Spring Data,Spring Autoconfiguration" /> elasticsearch,spring-data,spring-autoconfiguration,Java,Spring Boot,elasticsearch,Spring Data,Spring Autoconfiguration" />

Java NoSuchBeanDefinitionException:没有名为';elasticsearchTemplate';使用自动配置时可用

Java NoSuchBeanDefinitionException:没有名为';elasticsearchTemplate';使用自动配置时可用,java,spring-boot,elasticsearch,spring-data,spring-autoconfiguration,Java,Spring Boot,elasticsearch,Spring Data,Spring Autoconfiguration,我想使用ElasticSearch和Spring数据。我添加了以下依赖项: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> <dependency> <groupI

我想使用ElasticSearch和Spring数据。我添加了以下依赖项:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>
我创建了存储库:

@存储库
公共接口ArticleRepository扩展了ElasticsearchRepository{
PageFindByauthorsName(字符串名称,可分页);
}
我添加了这个,但它现在起作用了

启动我的应用程序后出现错误:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating 
bean with name 'articleRepository' defined in com.example.elasticsearch.repository.ArticleRepository defined in @EnableElasticsearchRepositories declared on Config: 
Cannot resolve reference to bean 'elasticsearchTemplate' while setting bean property 'elasticsearchOperations'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'elasticsearchTemplate' available
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342)
但为什么会这样?我想使用自动配置,我不想手动描述bean,正如在对stackoverflow的其他响应中所说的那样

我使用SpringBoot2.3.1.RELEASE和Java11

编辑

我的配置:

@配置
@EnableElasticsearchRepositories(basePackages=“com.example.elasticsearch.repository”)
公共类配置{
}
我的申请:

@springboot应用程序
公共类应用程序{
公共静态void main(字符串[]args){
SpringApplication.run(Application.class,args);
}
}

自动配置在配置您的上下文时会假设一些事情,但是您仍然需要将bean连接到类中才能使用它

验证是否将所有依赖项作为构建的一部分导入,然后确保将弹性搜索模板bean连接到类中

如果你仍然得到这个问题,你可以发布你的类以获得更好的洞察力


希望这有帮助

自动配置在配置上下文时会假设一些事情,但是您仍然需要将bean连接到类中才能使用它

验证是否将所有依赖项作为构建的一部分导入,然后确保将弹性搜索模板bean连接到类中

如果你仍然得到这个问题,你可以发布你的类以获得更好的洞察力


希望这有帮助

我尝试在本地复制您的设置,一切正常

如问题注释中所述,我已启用调试输出以获取我的应用程序的自动配置报告,我得到:

   ElasticsearchDataAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.data.elasticsearch.core.ElasticsearchTemplate' (OnClassCondition)

   ElasticsearchDataConfiguration.BaseConfiguration#elasticsearchConverter matched:
      - @ConditionalOnMissingBean (types: org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ElasticsearchDataConfiguration.BaseConfiguration#mappingContext matched:
      - @ConditionalOnMissingBean (types: org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ElasticsearchDataConfiguration.RestClientConfiguration matched:
      - @ConditionalOnClass found required class 'org.elasticsearch.client.RestHighLevelClient' (OnClassCondition)

   ElasticsearchDataConfiguration.RestClientConfiguration#elasticsearchTemplate matched:
      - @ConditionalOnBean (types: org.elasticsearch.client.RestHighLevelClient; SearchStrategy: all) found bean 'elasticsearchRestHighLevelClient'; @ConditionalOnMissingBean (names: elasticsearchTemplate types: org.springframework.data.elasticsearch.core.ElasticsearchOperations; SearchStrategy: all) did not find any beans (OnBeanCondition)

正如预期的那样,ElasticsearchRestTemplate由Spring Boot创建。请用所需信息更新您的问题。

我已尝试在本地复制您的设置,一切正常

如问题注释中所述,我已启用调试输出以获取我的应用程序的自动配置报告,我得到:

   ElasticsearchDataAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.data.elasticsearch.core.ElasticsearchTemplate' (OnClassCondition)

   ElasticsearchDataConfiguration.BaseConfiguration#elasticsearchConverter matched:
      - @ConditionalOnMissingBean (types: org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ElasticsearchDataConfiguration.BaseConfiguration#mappingContext matched:
      - @ConditionalOnMissingBean (types: org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ElasticsearchDataConfiguration.RestClientConfiguration matched:
      - @ConditionalOnClass found required class 'org.elasticsearch.client.RestHighLevelClient' (OnClassCondition)

   ElasticsearchDataConfiguration.RestClientConfiguration#elasticsearchTemplate matched:
      - @ConditionalOnBean (types: org.elasticsearch.client.RestHighLevelClient; SearchStrategy: all) found bean 'elasticsearchRestHighLevelClient'; @ConditionalOnMissingBean (names: elasticsearchTemplate types: org.springframework.data.elasticsearch.core.ElasticsearchOperations; SearchStrategy: all) did not find any beans (OnBeanCondition)

正如预期的那样,ElasticsearchRestTemplate由Spring Boot创建。请用要求的信息更新您的问题。

您的意思是什么?我更新了问题。我刚刚创建了一个存储库并想使用它。默认情况下,连接应该在localhost:9200上进行。我唯一能想到的是,您正在使用IDE,您添加了elasticsearch rest高级客户端依赖项,并且没有刷新IDE中的依赖项。我建议您从CLI或IDE清理构建;刷新依赖项、清理、构建和运行它。此外,启用执行器,如果应用程序启动,请列出bean,并确保您看到列出的elasticsearchTemplate。请告知如何运行!什么意思?我更新了问题。我刚刚创建了一个存储库并想使用它。默认情况下,连接应该在localhost:9200上进行。我唯一能想到的是,您正在使用IDE,您添加了elasticsearch rest高级客户端依赖项,并且没有刷新IDE中的依赖项。我建议您从CLI或IDE清理构建;刷新依赖项、清理、构建和运行它。此外,启用执行器,如果应用程序启动,请列出bean,并确保您看到列出的elasticsearchTemplate。请告知如何运行!在您的问题中,能否提供此应用程序的自动配置报告?看到我的配置非常简单。我只是启用了
@EnableElasticsearchRepositories
。我更新了我的问题。您能在问题中提供此应用程序的自动配置报告吗?看到我的配置非常简单。我只是启用了
@EnableElasticsearchRepositories
。我更新了我的问题,结果发现我有点问题。我重新创建了测试项目,一切都很好。谢谢。结果我有点问题。我重新创建了测试项目,一切都很好。谢谢