elasticsearch - ElasticSearch Java HighLevelRestClient 连接被拒绝
问题描述
我正在使用 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()); } });
解决方案
我遇到了同样的问题并解决了放置端口和协议的问题,如本页所示: 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"))...
希望这可以帮助。
再见。
推荐阅读
- android - Android Kotlin如何使用屏幕旋转复选框保存recyclerview的状态?
- android - 如何知道 SMS 在 Android 中正确发送?
- python - 打印出与数字对应的特定字符串
- arduino - 尝试结束() SerialBT 连接时出错
- java - 如何从 Mockito 模拟中获取每个方法的调用?
- python - 检查两个 .pyc 文件(使用相同的 python 版本编译)是否包含相同的代码
- python - 当内部有while循环时,tkinter模块崩溃
- android - Kotlin 中的类型化参数回调函数
- swift - 清除缓存目录显示 SQLite 错误
- google-cloud-platform - Cloud Functions:创建并启动 GCE VM,然后从 GCS 复制启动脚本