1

我正在使用 Java HighLevelRestClient 连接到我在 AWS 上托管的 elasticsearch 实例。我可以通过邮递员和浏览器对 URL 发出请求,但是当我使用客户端库时,我会收到

java.net.ConnectException:连接被拒绝。

(我目前不需要任何身份验证,因为这是一个小型公共测试实例)。这是我的代码:

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() {

            @覆盖
            公共无效 onResponse(GetResponse documentFields) {
                尝试 {
                    elasticGetResponse[0] = restHighLevelClient.get(getRequest).toString();
                }

                捕捉(IOException e){
                    e.printStackTrace();
                }

            }

            @覆盖
            公共无效onFailure(异常e){
                e.printStackTrace();
            }
        });

请让我知道如何解决这个问题...谢谢!

更新:这是我的 restClientBuilder 代码:

MySSLHelper sslHelper = new MySSLHelper(SSLConfig.builder()
                .withKeyStoreProvider(myKeyStoreProvider)
                .withTrustStoreProvider(InternalTrustStoreProvider.INSTANCE)
                。建造());

        RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost("MY_ELASTICSEARCH_ENDPOINT")).setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
            @覆盖
            公共 HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpAsyncClientBuilder) {
                返回 httpAsyncClientBuilder.setSSLContext(sslHelper.getContext());
            }
        });
4

1 回答 1

2

我遇到了同样的问题并解决了放置端口和协议的问题,如本页所示: https ://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.0/java-rest-high-getting -started-initialization.html

我的代码保持这样:

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

请尝试做这样的事情:

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

希望这可以帮助。

再见。

于 2019-05-23T13:22:04.127 回答