yojello
yojello

Reputation: 11

ElasticSearch Java HighLevelRestClient Connection Refused

I am using the Java HighLevelRestClient to connect to my elasticsearch instance hosted on AWS. I can make requests against the URL on postman and from my browser just fine, but when I use the client library I receive

java.net.ConnectException: Connection Refused.

(I don't currently need any authentication as this is a small public test instance). This is my code:

RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClientBuilder);

GetRequest getRequest = new GetRequest("some_index", "some_type","some_id");
        final String[] elasticGetResponse = new String[1];

        restHighLevelClient.getAsync(getRequest, new ActionListener() {

            @Override
            public void onResponse(GetResponse documentFields) {
                try {
                    elasticGetResponse[0] = restHighLevelClient.get(getRequest).toString();
                }

                catch (IOException e) {
                    e.printStackTrace();
                }

            }

            @Override
            public void onFailure(Exception e) {
                e.printStackTrace();
            }
        });

Please let me know how I can fix this... thanks!

Update: Here is my code for the restClientBuilder:

MySSLHelper sslHelper = new MySSLHelper(SSLConfig.builder()
                .withKeyStoreProvider(myKeyStoreProvider)
                .withTrustStoreProvider(InternalTrustStoreProvider.INSTANCE)
                .build());

        RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost("MY_ELASTICSEARCH_ENDPOINT")).setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
            @Override
            public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpAsyncClientBuilder) {
                return httpAsyncClientBuilder.setSSLContext(sslHelper.getContext());
            }
        });

Upvotes: 1

Views: 5326

Answers (1)

Thiago G. Alves
Thiago G. Alves

Reputation: 1409

I was the same problem and solved putting the port and protocol, like showed in this page: https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.0/java-rest-high-getting-started-initialization.html

My code stayed like this:

RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost(elasticsearchHost, 9200, "http")));

Please try to do something like this:

RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost("MY_ELASTICSEARCH_ENDPOINT", "MY_ELASTICSEARCH_PORT", "MY_ELASTICSEARCH_PROTOCOL"))...

Hope this helps.

Good bye.

Upvotes: 2

Related Questions