2017-10-16 50 views
-2

我想快速學習elasticsearch,我知道使用springboot是快速的,所以我創建了一個項目與springboot,然後,我看彈性搜索的API,但最後,它拋出了一個例外。無法連接到彈性搜索的java與springboot,說找不到xxx.jar

我只是想學習elasticSearch。
我不知道是否衝突罐。
我該怎麼辦?

package com.test.Search; 

import java.net.InetAddress; 
import java.net.UnknownHostException; 

import org.elasticsearch.common.settings.Settings; 
import org.elasticsearch.common.transport.InetSocketTransportAddress; 
import org.elasticsearch.transport.client.PreBuiltTransportClient; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.ResponseBody; 


@Controller 
@EnableAutoConfiguration 
public class AppController { 

    @RequestMapping("/") 
    @ResponseBody 
    String home() throws UnknownHostException { 

     PreBuiltTransportClient client = new 
PreBuiltTransportClient(Settings.EMPTY); 
     client.addTransportAddress(new 
InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)); 
     client.close(); 

     return "Hello World!"; 
    } 

    public static void main(String[] args) throws Exception { 
     SpringApplication.run(AppController.class, args); 
    } 
} 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
 
    <modelVersion>4.0.0</modelVersion> 
 

 
    <groupId>com.test</groupId> 
 
    <artifactId>Search</artifactId> 
 
    <version>0.0.1-SNAPSHOT</version> 
 

 
    <name>Search</name> 
 
    <url>http://maven.apache.org</url> 
 

 
    <properties> 
 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
 
    </properties> 
 

 
    <dependencies> 
 
    <dependency> 
 
     <groupId>org.springframework.boot</groupId> 
 
     <artifactId>spring-boot-starter-web</artifactId> 
 
    </dependency> 
 
\t <dependency> 
 
\t  <groupId>org.elasticsearch.client</groupId> 
 
\t  <artifactId>transport</artifactId> 
 
\t  <version>5.2.1</version> 
 
\t <dependency> 
 
\t \t  <groupId>org.elasticsearch</groupId> 
 
\t \t  <artifactId>elasticsearch</artifactId> 
 
\t \t  <version>5.2.1</version> 
 
\t \t </dependency> 
 
\t </dependency> 
 
\t </dependencies> 
 
    <parent> 
 
    <groupId>org.springframework.boot</groupId> 
 
    <artifactId>spring-boot-starter-parent</artifactId> 
 
    <version>1.5.7.RELEASE</version> 
 
</parent> 
 

 
<plugin> 
 
    <groupId>org.apache.maven.plugins</groupId> 
 
    <artifactId>maven-shade-plugin</artifactId> 
 
    <version>2.4.1</version> 
 
    <executions> 
 
     <execution> 
 
      <phase>package</phase> 
 
      <goals><goal>shade</goal></goals> 
 
      <configuration> 
 
       <transformers> 
 
        <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> 
 
       </transformers> 
 
      </configuration> 
 
     </execution> 
 
    </executions> 
 
</plugin> 
 
    
 
</project>
拋出java.lang.ClassNotFoundException:org.elasticsearch.plugins.NetworkPlugin

回答

0
Add the following in pom.xml 
<dependency> 
<groupId>org.elasticsearch</groupId> 
<artifactId>elasticsearch</artifactId> 
<version>5.6.3</version> 
</dependency> 

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

<dependency> 
<groupId>org.apache.logging.log4j</groupId> 
<artifactId>log4j-api</artifactId> 
<version>2.9.1</version> 
</dependency> 
<dependency> 
<groupId>org.apache.logging.log4j</groupId> 
<artifactId>log4j-core</artifactId> 
<version>2.9.1</version> 
</dependency> 
+0

你應該簡短說明添加到您的建議的解決方案...... – yakobom