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

为什么这个错误在Spring Boot中无法加载elasticsearch节点?

冯新知
2023-03-14

我正试图在我的WebApplication中使用elasticsearch。我使用的是spring Boot2.0.6。我没有添加任何配置文件,弹性搜索是由Spring Boot自动配置的。我在应用程序中添加了spring数据弹性搜索属性。

Spring-Data-ElasticSearch-3.0.11

ElasticSearch-5.6.12

spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=localhost:9300
spring.data.elasticsearch.properties.node.master: true
spring.data.elasticsearch.properties.node.data: false
spring.data.elasticsearch.properties.node.name: my-node
spring.data.elasticsearch.properties.node.attr.type: hot
spring.data.elasticsearch.properties.http.enabled: true
spring.data.elasticsearch.repositories.enabled=true  

当我运行我的应用程序控制台时,显示

 o.elasticsearch.plugins.PluginsService   : no modules loaded
 o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.index.reindex.ReindexPlugin]
 o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.join.ParentJoinPlugin]
 o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.percolator.PercolatorPlugin]
 o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.script.mustache.MustachePlugin]
 o.elasticsearch.plugins.PluginsService   : loaded plugin [org.elasticsearch.transport.Netty4Plugin]
 o.s.d.e.c.TransportClientFactoryBean     : Adding transport node : 127.0.0.1:9300
Exception encountered during context initialization - cancelling refresh attempt: 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loaders':
Invocation of init method failed; nested exception is NoNodeAvailableException
[None of the configured nodes are available: [{#transport#-1}{zYXxPcpaQ_6I9GI2yID8cQ}{localhost}{127.0.0.1:9300}]]
@Document(indexName = "users", type = "users", shards = 1, replicas = 0, refreshInterval = "-1")
public class Users {

private String name;
private Long id;
private String teamName;
private Long salary;

Loaders.java

@Component
public class Loaders {

    @Autowired
    ElasticsearchOperations operations;

    @Autowired
    UsersRepository usersRepository;

    @PostConstruct
    @Transactional
    public void loadAll(){

        operations.putMapping(Users.class);
        System.out.println("Loading Data");
        usersRepository.saveAll(getData());
        System.out.printf("Loading Completed");

    }

    private List<Users> getData() {
        List<Users> userses = new ArrayList<>();
        userses.add(new Users("Ajay",123L, "Accounting", 12000L));
        userses.add(new Users("Jaga",1234L, "Finance", 22000L));
        userses.add(new Users("Thiru",1235L, "Accounting", 12000L));
        return userses;
    }
}

usersRepository.java

public interface UsersRepository extends ElasticsearchRepository<Users, Long> {
    List<Users> findByName(String text);

    List<Users> findBySalary(Long salary);
}

为什么我会出错?我还有其他的财产需要使用吗?

共有1个答案

庞安晏
2023-03-14

从这里下载elasticsearch 5.6.12后,我的问题解决了https://www.elastic.co/downloads/elasticsearch#ga-release

添加配置文件

@Bean
public Client client() throws UnknownHostException {
    Settings settings = Settings.builder()
             .put("client.transport.sniff", true)
                .put("cluster.name", "elasticsearch").build();
    @SuppressWarnings("resource")
    TransportClient client = new PreBuiltTransportClient(settings)
    .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
     return client;
}

@Bean
public ElasticsearchOperations elasticsearchTemplate() throws UnknownHostException {
    return new ElasticsearchTemplate(client());
}
 类似资料:
  • 谢谢你的帮助。Haskell看起来很有趣,但如果没有一个好教授的指导和指导,这是一门很难学的语言。我只是想自学这门语言。

  • 然后,我创建了注释代码。 结果 原因:java.lang.StringIndexOutOfBoundsException:长度=0;指数=-6 说真的,我和这个代码斗争了7小时30分钟。

  • 我可以正确运行我创建的第一个项目(springboot、eclipse),但是当我运行任何其他项目时,都会出现以下错误: 当我使用Spring Boot V2.3.4创建项目时会出现问题,但当我使用V2.1.17时,项目会正确构建--显然这一定是兼容性问题。

  • {“error”:“invalid_scope”,“error_description”:“AADSTS70011:为输入参数”scope“提供的值无效。作用域 https://graph.microsoft.com/User.Read https://graph.microsoft.com/User.ReadWrite https://graph.microsoft.com/User.ReadB

  • 问题内容: 我使用弹出窗口创建新记录,并在窗口内部渲染。除此之外,我还根据其中一个组合框的selectedindex在此视图中调用a 。我可以成功将表单发布到Controller并在出现错误时将其返回到视图。但是,返回表格后,只有零件返回,而我无法渲染。因此,在提交表单之前,我又如何将其呈现为最后状态? 视图: 问题答案: 在这种情况下,您需要在没有HTML帮助程序的情况下进行自定义ajax发布。

  • 我目前正在学习springboot。通过选择spring starter project,我在STS中创建了一个项目。spring boot版本2.2.2和已导入JPA、H2和RestRepository。 下面是我的领域类, 应用属性 存储库类 在波姆。xml显示了下面提到的错误。不确定,因为这一点,我得到了错误,但我没有在pom的任何变化。xml 在运行项目时,我得到了以下错误,不知道为什么整