2017-03-14 177 views
0

我已經安裝了X-包到我的elasticsearch:curl --user u:p 'localhost:9200/_xpack'ElasticSearch相機連X-包:Java API的

{ 
    "build" : { 
    "hash" : "e016ba5", 
    "date" : "2017-01-24T20:17:08.168Z" 
    }, 
    "license" : { 
    "uid" : "a5a93479-cdd1-44c0-8669-78a3ae1cbfeb", 
    "type" : "trial", 
    "mode" : "trial", 
    "status" : "active", 
    "expiry_date_in_millis" : 1491567639615 
    }, 
    "features" : { 
    "graph" : { 
     "description" : "Graph Data Exploration for the Elastic Stack", 
     "available" : true, 
     "enabled" : false 
    }, 
    "monitoring" : { 
     "description" : "Monitoring for the Elastic Stack", 
     "available" : true, 
     "enabled" : false 
    }, 
    "security" : { 
     "description" : "Security for the Elastic Stack", 
     "available" : true, 
     "enabled" : true 
    }, 
    "watcher" : { 
     "description" : "Alerting, Notification and Automation for the Elastic Stack", 
     "available" : true, 
     "enabled" : false 
    } 
    }, 
    "tagline" : "You know, for X" 
} 

這是我的代碼,以建立我的客戶:

Settings settings = Settings.builder() 
     .put(ElasticsearchApplicationResources.ELASTICSEARCH_PROPERTY_CLUSTER_NAME, this.configurationResources.getElasticsearchCluserName()) 
    .put("xpack.security.user", "elastic:changeme") 
    .build(); 

    List<InetSocketTransportAddress> addresses = ...; 

    try { 
    this.elasticsearchClient = new PreBuiltTransportClient(settings) 
     .addTransportAddresses(addresses.toArray(new InetSocketTransportAddress[addresses.size()])); 
    }catch (Exception e) 
    { 
    System.out.print(e); 
    } 

目前,我收到此消息:

java.lang.IllegalArgumentException:未知設置[xpack.security.user]請檢查所需的插件是否爲inst或檢查已刪除設置的突破變更文檔

任何想法?

回答

0

那麼,你需要添加這個依賴於你的 '的pom.xml'

<repositories> 
    <!-- add the elasticsearch repo --> 
    <repository> 
     <id>elasticsearch-releases</id> 
     <url>https://artifacts.elastic.co/maven</url> 
     <releases> 
      <enabled>true</enabled> 
     </releases> 
     <snapshots> 
      <enabled>false</enabled> 
     </snapshots> 
    </repository> 
</repositories> 
<dependency> 
    <groupId>org.elasticsearch.client</groupId> 
    <artifactId>x-pack-transport</artifactId> 
    <version>${org.elasticsearch.version}</version> 
</dependency> 

接下來,更新您的Java代碼,

import org.elasticsearch.xpack.client.PreBuiltXPackTransportClient; 

this.elasticsearchClient = new PreBuiltXPackTransportClient(settings) 
    .addTransportAddresses(addresses.toArray(new InetSocketTransportAddress[addresses.size()])); 

,然後再試〜