2017-03-13 14 views
0

私はelasticsearchサーバーにJavaクライアントを接続しようとしています。 elasticsearchのバージョンは2.4.0です。 このサーバーには特別な構成があります。そのため、接続には9300の代わりに10700というポートを使用します。
( "telnet serveraddress 10700"を試してみると成功します)Elasticsearch - java.lang.NoClassDefFoundError

次のように、私はエラーがあり、解決方法はわかりません。

お願いします。

ありがとうございました。

マイコード:

public void connexionToEs() throws UnknownHostException { 
    String clusterName = "xxx"; 
    String serverAddress = "xxx"; 

    try{ 
     Settings settings = Settings.builder() 
       .put("cluster.name", clusterName) 
       .put("client.transport.sniff", true) 
       .build(); 
     TransportClient client = new PreBuiltTransportClient(settings); 
     client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(serverAddress), 10700)); 

     SearchResponse response = client.prepareSearch().execute().actionGet(); 
     String output = response.toString(); 
     System.out.println(output); 
     client.close(); 
    }catch(Exception e){ 
     e.printStackTrace(); 
    } 
} 

私の依存関係:

<dependency> 
    <groupId>org.elasticsearch</groupId> 
    <artifactId>elasticsearch</artifactId> 
    <version>2.4.0</version> 
</dependency> 

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

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-api</artifactId> 
    <version>2.7</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-core</artifactId> 
    <version>2.7</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-web</artifactId> 
    <version>2.6.2</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-to-slf4j</artifactId> 
    <version>2.6.2</version> 
</dependency> 

マイエラー:

Exception in thread "main" java.lang.NoClassDefFoundError: org/elasticsearch/plugins/ActionPlugin 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:763) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 
at java.net.URLClassLoader.access$100(URLClassLoader.java:73) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:368) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:362) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:361) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
at org.elasticsearch.transport.client.PreBuiltTransportClient.<clinit>(PreBuiltTransportClient.java:54) 
at fr.solocal.dao.impl.CentralDAOImpl.connexionToEs(CentralDAOImpl.java:422) 
at fr.solocal.App.main(App.java:28) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.plugins.ActionPlugin 
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
... 20 more 
+0

あなたがelasticsearchと輸送クライアントの異なるバージョンを持っている -

可能な解決策は冗談クライアントを使用して別の春データの実装です。 –

+0

あなたの答えをありがとう!はい、私は知っていますが、私はelasticsearchのバージョンはサーバーにインストールされているものに依存します。だから私はエラスティックバージョン5.0.0で試したが、問題は他のスレッドのエラーです... –

答えて

0

@Roma Khomyshynが述べたように、春データElasticsearchのみ、現在のトランスポートクライアントをサポートしていますが、 Elasticsearchサーバーとトランスポートクライアントのバージョンはでなければなりません彼は同じです。だから、このような予期しないエラーが発生したのです。 https://github.com/VanRoy/spring-data-jest

関連する問題