title: Validation Failed: 1: source is missing;2: content type is missing; In ElasticSearch?
body: <p>Hi I am trying to start an embedded elastic search server , then using a java high level rest client to insert a document in to an index. However i am getting the following error . </p>
  
  <pre><code>com.openmind.primecast.web.rest.PerformanceReportingIntTest  Time elapsed: 68.723 sec  &lt;&lt;&lt; ERROR!
  org.elasticsearch.action.ActionRequestValidationException: Validation Failed: 1: source is missing;2: content type is missing;
      at org.elasticsearch.action.bulk.BulkRequest.validate(BulkRequest.java:612)
      at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1728)
      at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1694)
      at org.elasticsearch.client.RestHighLevelClient.bulk(RestHighLevelClient.java:470)
      at com.openmind.primecast.web.rest.PerformanceReportingIntTest.startElasticServer(PerformanceReportingIntTest.java:75)
  </code></pre>
  
  <p>The following is my source code. in short i am having an index named cars and type car under it . I am trying to insert a document under car using java high level rest client.</p>
  
  <pre><code>package com.openmind.primecast.web.rest;
  
  import java.io.FileNotFoundException;
  import java.io.IOException;
  import java.io.InputStream;
  import java.util.Map;
  import java.util.concurrent.TimeUnit;
  
      import org.apache.commons.collections4.map.HashedMap;
      import org.apache.http.HttpHost;
      import org.elasticsearch.action.bulk.BulkRequest;
      import org.elasticsearch.action.bulk.BulkResponse;
      import org.elasticsearch.action.index.IndexRequest;
      import org.elasticsearch.client.RequestOptions;
      import org.elasticsearch.client.RestClient;
      import org.elasticsearch.client.RestHighLevelClient;
      import org.json.simple.JSONObject;
      import org.junit.AfterClass;
      import org.junit.BeforeClass;
      import org.junit.Test;
      import org.junit.runner.RunWith;
      import org.springframework.boot.test.context.SpringBootTest;
      import org.springframework.test.context.junit4.SpringRunner;
  
      import com.openmind.primecast.AbstractCassandraTest;
      import com.openmind.primecast.PrimecastApp;
  
      import pl.allegro.tech.embeddedelasticsearch.EmbeddedElastic;
      import pl.allegro.tech.embeddedelasticsearch.IndexSettings;
      import pl.allegro.tech.embeddedelasticsearch.PopularProperties;
  
  
          @RunWith(SpringRunner.class)
          @SpringBootTest(classes = PrimecastApp.class)
          public class PerformanceReportingIntTest extends AbstractCassandraTest {
  
              private static EmbeddedElastic embeddedElastic;
  
              private static RestHighLevelClient client;
  
              @BeforeClass
              public static void startElasticServer() throws FileNotFoundException, IOException, InterruptedException {
  
                  embeddedElastic = EmbeddedElastic.builder().withElasticVersion("6.6.1")
                          .withSetting(PopularProperties.TRANSPORT_TCP_PORT, 9350)
                          .withSetting(PopularProperties.CLUSTER_NAME, "my_cluster").withStartTimeout(5, TimeUnit.MINUTES)
                          .withIndex("cars", IndexSettings.builder().withType("car", getSystemResourceAsStream()).build()).build()
                          .start();
  
                  client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9350, "http")));
  
                  BulkRequest request = new BulkRequest();
                  Map&lt;String, String&gt; m1 = new HashedMap&lt;&gt;();
                  m1.put("_id", "1");
                  m1.put("manufacturer", "Benz");
                  m1.put("model", "A Class");
                  m1.put("description", "Latest Model");
  
                  JSONObject jsonObj = new JSONObject(m1);
  
                  request.add(new IndexRequest("cars", "car"), jsonObj);
                  BulkResponse response = client.bulk(request, RequestOptions.DEFAULT);
              }
  
              private static InputStream getSystemResourceAsStream() throws FileNotFoundException {
                  ClassLoader classloader = Thread.currentThread().getContextClassLoader();
                  InputStream is = classloader.getResourceAsStream("config/elasticsearch/car-mapping.json");
                  return is;
              }
  
              @Test
              public void test() {
  
              }
  
              @AfterClass
              public static void close() throws IOException {
                  client.close();
                  embeddedElastic.stop();
              }
  
          }
  </code></pre>
  
  <p>this is my car-mapping.json file </p>
  
  <pre><code>{
    "car": {
      "properties": {
        "manufacturer": {
          "type": "text",
          "index": "false"
        },
        "model": {
          "type": "text",
          "index": "true"
        },
        "description": {
          "type": "text"
        }
      }
    }
  }
  </code></pre>
  
  <p>Really appreciate any help
  thank you</p>