2015-11-05 94 views
8

我最近從elasticsearch 1.7切換到2.0,我注意到您設置客戶端的方式發生了變化。我瀏覽了文檔,出於某種原因客戶端始終爲空。我想知道我是否正確設置了它。Java彈性搜索客戶端始終爲空

這裏是我的代碼:

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

你有例外嗎?您的語法是應該的 –

+0

我收到此錯誤:'java.lang.NoSuchMethodError:com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;' –

+0

這是完全番石榴與此同時涉及幾個番石榴版本的問題。我建議你做一個乾淨的編譯。如果這是一個war文件,請刪除webapps中的項目文件夾並重新部署。 與ES無關 –

回答

14

正如在評論中指出,更詳細一點:Elasticsearch 2.0使用番石榴18.0(見https://github.com/elastic/elasticsearch/pull/7593)。所以要修復像java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concu‌rrent/Executor;這樣的錯誤,請確保使用Guava 18.0作爲依賴關係,而不是其他版本。

+0

嘗試使用番石榴20.0與elasticsearch 2.4.1,它的工作原理!但奇怪的是,Guava 15.0似乎與ES 2.3.5一起工作。恕我直言,它仍然是一個好主意,使用番石榴18.0或更高,同時升級到ES 2.0或更高。 – quickbrownfox

相關問題