2015-11-05 23 views
8

Geçtiğimiz günlerde elasticsearch 1.7'den 2.0'a geçiş yaptım ve istemcinin değiştirilme şeklini fark ettim. Belgelere gittim ve bir sebepten dolayı müşteri her zaman boş. Doğru ayarlamış mıyım diye merak ediyordum. biraz daha detaylı olarak açıklamalarda belirtildiği gibiJava elasticsearch istemcisi her zaman sıfır

Client client = null; 

    try { 
     client = TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)); 
    } catch (Exception e) { 
     Logger.log(e); 
    } finally { 
     client.close(); 
     try { 
      conn.close(); 
     } catch (SQLException e) { 
      Logger.log(e); 
     } 
    } 
+0

Bir istisna var mı? Sizin sözdizimi –

+0

olması gerektiği gibi bu hatayı alıyorum: java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor() Ljava/util/eşzamanlı/Executor; ' –

+0

bu tamamen guava Aynı zamanda birkaç guava versiyonu ile ilgili bir sorun ile ilgilidir. Temiz bir derleme yapmanızı öneririm. Bu bir savaş dosyasıysa, webapps içindeki projenin klasörünü silin ve yeniden konuşlandırın. ES –

cevap

14

ama:

İşte benim kodudur Elasticsearch 2.0 Guava 18.0 (https://github.com/elastic/elasticsearch/pull/7593 bakınız) kullanır. Yani, java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concu‌rrent/Executor; gibi hataları düzeltmek için Guava 18.0'ı bağımlılık olarak kullandığınızdan ve diğer sürümleri kullanmayacağınızdan emin olun.

+0

elasticsearch 2.4.1 ile Guava 20.0 kullanmayı denediniz ve işe yarıyor! Ancak Guava 15.0'ın ES 2.3.5 ile çalıştığı oldukça garip. IMHO, hala ES 2.0 ya da daha yüksek bir sürüme yükseltme yaparken Guava 18.0 ya da daha yüksek kullanmak için iyi bir fikir. – quickbrownfox

İlgili konular