After connecting to the elasticsearch cluster through the Java API I get an error. These are the lines that proof I'm able to connect to the node. The IP is correct, I just replaced with xxx. But when I try to create a mapping I get an error. This problem occurs only with the new elasticsearch 2 and the new java api.
2015-11-11 11:04:36.987 Getting ES Client...
Nov 11, 2015 11:04:37 AM org.elasticsearch.plugins.PluginsService
INFO: [Elfqueen] loaded , sites
2015-11-11 11:04:36.987 Node: xxx.xxx.xxx.xxx
2015-11-11 11:04:36.987 ES Client obtained
I'm not able to create a new mapping in the cluster because I get this error on the last line of this piece of code:
CreateIndexRequestBuilder createIndexRequestBuilder = client.admin().indices().prepareCreate(indexName);
createIndexRequestBuilder.addMapping(documentName, json);
createIndexRequestBuilder.execute().actionGet();
Exception in thread "Thread-1" NoNodeAvailableException[None of the configured nodes are available: ]
at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:280)
at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:197)
at org.elasticsearch.client.transport.support.TransportProxyClient.execute(TransportProxyClient.java:55)
at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:272)
at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:347)
at org.elasticsearch.client.support.AbstractClient$IndicesAdmin.execute(AbstractClient.java:1177)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:85)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:59)
Is the same code that I used with previous versions of the Java API but I didn't get any errors then. I get the ES client with this code:
private static Client getClient() {
Settings settings = Settings.settingsBuilder().build();
Client client = null;
TransportClient transportClient = TransportClient.builder().settings(settings).build();
try {
client = transportClient.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(Receptor.es_ip), 9300));
} catch (UnknownHostException e) {
System.err.println(Util.getTimestampStr() + "UnknownHostException error.");
e.printStackTrace();
}
if(transportClient.connectedNodes() == null){
System.err.println(Util.getTimestampStr() + "No connected nodes found.");
}else{
for(DiscoveryNode d : transportClient.connectedNodes()){
System.err.println(Util.getTimestampStr() + "DiscoveryNode: " + d.getHostName());
}
for(DiscoveryNode d : transportClient.listedNodes()){
System.err.println(Util.getTimestampStr() + "Node: " + d.getHostName());
}
}
return transportClient;
}