[英]AWS ElasticSearch PreBuiltTransportClient java.lang.NoSuchMethodError
我在Eclipse IDE中創建了一個Java項目,並且在類中有這個代碼。 我已經包含了所有jar文件依賴項。
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY,Arrays.asList(
Netty3Plugin.class,
Netty4Plugin.class,
ReindexPlugin.class,
PercolatorPlugin.class,
MustachePlugin.class))
.addTransportAddress(new InetSocketTransportAddress(InetAddress
.getByName("https://search-my-test-domain-XXXXXXXXXXXXXXXXXXXXXX.us-east-1.es.amazonaws.com"), 9300));
但是,當我運行代碼時出現此錯誤,
Exception in thread "main" java.lang.NoSuchMethodError: org.elasticsearch.transport.client.PreBuiltTransportClient.addPlugins(Ljava/util/Collection;Ljava/util/Collection;)Ljava/util/Collection;
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:125)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:111)
at ESConnManager.retrieveDataFromES(ESConnManager.java:572)
at ESConnManager.main(ESConnManager.java:166)
我正在使用elasticsearch v5.3.2並使用java api v5.3。 有解決方案嗎
您不需要指定這五個插件,因為它們已經由PreBuiltTransportClient
構造函數默認加載,如PreBuiltTransportClient
的源代碼中PreBuiltTransportClient
所以請改用:
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new InetSocketTransportAddress(InetAddress
.getByName("https://search-my-test-domain-XXXXXXXXXXXXXXXXXXXXXX.us-east-1.es.amazonaws.com"), 9300));
但是,由於您嘗試訪問AWS托管ES群集,只知道不支持傳輸客戶端,您只能通過HTTP而不是TCP訪問AWS ES實例。 您將獲得的下一個錯誤是該節點不可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.