Search code examples
jsonelasticsearchresthighlevelclient

how to fix NullPointerException while loading document to Elasticsearch 7.3


I want to load a JSON string to Elasticsearch version 7.3.

Following is the code i am using for this.

    private RestHighLevelClient restHighLevelClient;
    String jsonString="//here the complete JSON string";
    JSONObject jsonObject = new JSONObject(cojsonStringntent1.toString());
    HashMap<String, Object> hashMap = new Gson().fromJson(jsonObject.toString(), HashMap.class);

    IndexRequest indexRequest = new IndexRequest("index", "type").source(hashMap);
    restHighLevelClient.index(indexRequest, RequestOptions.DEFAULT);

Exception : Exception in thread "main" java.lang.NullPointerException at line restHighLevelClient.index(indexRequest, RequestOptions.DEFAULT);

If I post the same jsonString via POSTMEN than it is being loaded to ELASTICSEARCH perfectly.


Solution

  • If you are not using spring(as it's not mentioned), you can use below simple code to create a resthighlevelclient.

    In below code, I am reading the elasticsearch configuration from a config file, feel free to change it to the way you read the properties or config, or if you just want to quickly test it hardcode the values of host and port

    RestHighLevelClient restHighLevelClient = new RestHighLevelClient(
                    RestClient.builder(new HttpHost(configuration.getElasticsearchConfig().getHost(),
                            configuration.getElasticsearchConfig().getPort(),
                            "http")));