2015-11-05 8 views
6

Hallo Freunde, ich entwickle Spring Boot Projekt mit elastic search Ich habe elastische Suche auf lokale Maschine eingerichtet und ich habe Head Plugin in elastische Suche installiert. Meine elastische Suche ist korrekt eingerichtet und zeigt grünes Zeichen. Meine applikations dev.yml Datei in meinem Projekt ist wie folgt:Keiner der konfigurierten Knoten sind verfügbar Problem mit Spring Boot

server: 
    port: 8080 

liquibase: 
    context: dev 

spring: 
    profiles: 
     active: dev 
    datasource: 
     dataSourceClassName: org.h2.jdbcx.JdbcDataSource 
     url: jdbc:h2:mem:jhipster;DB_CLOSE_DELAY=-1 
     databaseName: 
     serverName: 
     username: 
     password: 

    jpa: 
     database-platform: com.aquevix.demo.domain.util.FixedH2Dialect 
     database: H2 
     openInView: false 
     show_sql: true 
     generate-ddl: false 
     hibernate: 
      ddl-auto: none 
      naming-strategy: org.hibernate.cfg.EJB3NamingStrategy 
     properties: 
      hibernate.cache.use_second_level_cache: true 
      hibernate.cache.use_query_cache: false 
      hibernate.generate_statistics: true 
      hibernate.cache.region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory 
    data: 
     elasticsearch: 
      cluster-name: elasticsearch 
      cluster-nodes: localhost:9200 
    messages: 
     cache-seconds: 1 
    thymeleaf: 
     mode: XHTML 
     cache: false 
    activemq: 
     broker-url: tcp://localhost:61616 



metrics: 
    jmx.enabled: true 
    spark: 
     enabled: false 
     host: localhost 
     port: 9999 
    graphite: 
     enabled: false 
     host: localhost 
     port: 2003 
     prefix: TestApollo 

cache: 
    timeToLiveSeconds: 3600 
    ehcache: 
     maxBytesLocalHeap: 16M 

Elastic-Suchdienst ist auf meinem Rechner läuft, aber wenn ich versuche, Einheit zu speichern ersten speichert Einheit meinen Code in mysql dann in Elasticsearch mit elastic search repository sondern Einheit in elastische beim Speichern wirft Fehler:

Hibernate: insert into EMPLOYEE (id, rollno) values (null, ?) 
[ERROR] com.aquevix.demo.aop.logging.LoggingAspect - Exception in com.aquevix.demo.web.rest.EmployeeResource.create() with cause = null 
org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [] 
     at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:298) ~[elasticsearch-1.3.2.jar:na] 
     at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:214) ~[elasticsearch-1.3.2.jar:na] 
     at org.elasticsearch.client.transport.support.InternalTransportClient.execute(InternalTransportClient.java:105) ~[elasticsearch-1.3.2.jar:na] 
     at org.elasticsearch.client.support.AbstractClient.index(AbstractClient.java:94) ~[elasticsearch-1.3.2.jar:na] 
     at org.elasticsearch.client.transport.TransportClient.index(TransportClient.java:331) ~[elasticsearch-1.3.2.jar:na] 
     at org.elasticsearch.action.index.IndexRequestBuilder.doExecute(IndexRequestBuilder.java:313) ~[elasticsearch-1.3.2.jar:na] 
     at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:91) ~[elasticsearch-1.3.2.jar:na] 
     at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:65) ~[elasticsearch-1.3.2.jar:na] 
     at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.index(ElasticsearchTemplate.java:431) ~[spring-data-elasticsearch-1.1.3.RELEASE.jar:na] 
     at org.springframework.data.elasticsearch.repository.support.AbstractElasticsearchRepository.save(AbstractElasticsearchRepository.java:138) ~[spring-data-elasticsearch-1.1.3.RELEASE.jar:na] 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_51] 

i auch 9300 Port statt 9200 verwenden haben, aber nichts funktioniert. Ich habe alles versucht, aber Lösungen finden, bitte helfen Sie!

+1

Ich bin hier das gleiche Problem haben, auch mit Elasticsearch 2.x, sollten Sie es in Ihrer Frage angeben. – Tony

Antwort

3

Ich habe die Lösung gefunden ES2.0 funktioniert nicht richtig, also ich ES1.7.3 neu installieren jetzt funktioniert es in meinem Fall. complete details here!

+0

Dieser Teil in Ihrem Link hat mir geholfen: 'Hinweis: Verwenden Sie nicht 9200 als Port, wenn Sie elasticsearch mit Java oder Spring-Boot verwenden möchten, da 9200 Port für HTTP-Protokoll und 9300 nur mit TCP-Protokoll verwendet wird – jcroll

0

Sie scheinen JHipster (wunderbar Toolset wenn ich hinzufügen) zu verwenden, die

org.springframework.boot:spring-boot-starter-data-elasticsearch: -> 1.3.3.RELEASE

UNTER Code Dies funktioniert nur mit Elasticsearch 2.0 verwendet, so installieren Sie einfach Elasticsearch 1.7.3 und führen

2

Ich hatte das gleiche Problem wie du, und ich benutze auch Jhipster. Wie bereits erwähnt eine mögliche Lösung ist Ihr Elasticsearch Instanz degradieren, aber wenn Sie es nicht degradieren wollen, hier ist das, was es für mich gearbeitet:

  • Update Frühjahr Boot auf die lastet Version (> 1.4.0.RC1)
  • Konfigurieren Sie ElasticsearchTemplate manuell anstelle von Autokonfiguration.

Bitte, wenn Sie weitere Informationen benötigen, haben Sie einen Blick auf dieses Thema: http://ignaciosuay.com/how-to-connect-spring-boot-to-elasticsearch-2-x-x/

Verwandte Themen