Ich möchte ElasticSearch Repository in einer Spring-Boot-Anwendung verwenden. Ich habe eine lokale laufende Instanz Elasticsearch 5.5.2 ich für eine Weile suchen habe, versucht, so viele Kombinationen der verschiedenen Quellen, aber nichts eine funktionierende Lösung zu ergeben, und jetzt stecke Ich bin mit Fehler:mit Springboot mit lokaler Elastic-Search-Instanz funktioniert nicht
Fehler Bean mit dem Namen 'elasticsearchTemplate'
schaffen, was mache ich falsch?
Das ist mein Haupt Klasse
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class Application {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger("chapters.introduction.HelloWorld1");
try
{
SpringApplication.run(Application.class, args);
}
catch(Exception e)
{
logger.info("caught an exception",e);
}
}
}
Config Klasse
@Configuration
@EnableElasticsearchRepositories(basePackages = "hello")
@ComponentScan(basePackages = {"hello"})
public class config {
@Bean
public NodeBuilder nodeBuilder() {
return new NodeBuilder();
}
@Bean
public ElasticsearchOperations elasticsearchTemplate() {
Settings.Builder elasticsearchSettings =
Settings.settingsBuilder()
.put("http.enabled", "false") // 1
.put("path.data", "/home/nad/elasticsearch_data") // 2
.put("path.home", "/home/nad/Downloads/elasticsearch-5.5.2"); // 3
return new ElasticsearchTemplate(nodeBuilder()
.local(true)
.settings(elasticsearchSettings.build())
.node()
.client());
}
}
meine build.gradle Datei
group 'FirstWebServer'
version '1.0-SNAPSHOT'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.8.RELEASE")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
jar {
baseName = 'gs-spring-boot'
version = '0.1.0'
}
repositories {
maven { url "http://repo.spring.io/milestone" }
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
// tag::jetty[]
compile("org.springframework.boot:spring-boot-starter-web") {
exclude module: "spring-boot-starter-tomcat"
}
compile("org.springframework.boot:spring-boot-starter-jetty")
// end::jetty[]
// tag::actuator[]
compile("org.springframework.boot:spring-boot-starter-actuator")
// end::actuator[]
//compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-elasticsearch', version: '1.2.5.RELEASE'
compile group: 'org.springframework.data', name: 'spring-data-elasticsearch', version: '3.0.1.RELEASE'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-parent', version: '2.0.0.M6', ext: 'pom'
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile group: 'org.projectlombok', name: 'lombok', version: '1.16.18'
testCompile("junit:junit")
}
was t Die richtige Art der Konfiguration? einige Beispiele zeigen application.properties Konfiguration, einige nicht. Was Kompatibilität, einige Shows, die nur 2. * oder niedriger Elasticsearch, sagten einige, dass
Es ist wirklich verwirrend :(
Vielen Dank für Ihre Hilfe