# Error while creating Elasticsearch API Client(8.0.1) object using Spring Boot

**URL:** <https://discuss.elastic.co/t/error-while-creating-elasticsearch-api-client-8-0-1-object-using-spring-boot/300263>\
**Category:** Elasticsearch\
**Tags:** language-clients\
**Created:** [March 22, 2022, 2:54am UTC](https://discuss.elastic.co/t/error-while-creating-elasticsearch-api-client-8-0-1-object-using-spring-boot/300263 "2022-03-22T02:54:42Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![bhavya](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/bhavya/32/45679_2.png) [@bhavya](https://discuss.elastic.co/u/bhavya)\
**Post date:** [March 22, 2022, 2:54am UTC](https://discuss.elastic.co/t/error-while-creating-elasticsearch-api-client-8-0-1-object-using-spring-boot/300263/1 "2022-03-22T02:54:42Z")

</div>

I am implementing Elasticsearch 8.0.1 version using Spring Boot. As mentioned in the [documentation](https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/8.0/installation.html), this is the `pom.xml` of my project

```auto
<project>

  <dependencies>
    <dependency>
      <groupId>co.elastic.clients</groupId>
      <artifactId>elasticsearch-java</artifactId>
      <version>8.0.1</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.12.3</version>
    </dependency>
  </dependencies>

</project>

```

This is the Configuration class (`ElasticsearchConfiguration.java`)

```auto

    @Bean
    public ElasticsearchClient client() {
        RestClient restClient = RestClient.builder(
                new HttpHost("localhost", 9900)).build();

        // Create the transport with a Jackson mapper
        ElasticsearchTransport transport = new RestClientTransport(
                restClient, new JacksonJsonpMapper());

        // And create the API client
        ElasticsearchClient client = new ElasticsearchClient(transport);

        return client;
    }
}

```

And the main class includes the following part of the code

```auto
    @Bean
    public boolean createTestIndex() throws Exception {
        CreateIndexResponse createResponse = elasticsearchClient.indices().create(
                new CreateIndexRequest.Builder()
                        .index("my-index")
                        .aliases("foo",
                                new Alias.Builder().isWriteIndex(true).build()
                        )
                        .build()
        );
        return true;
    }

}

```

But when I run the project I am getting below error

```auto
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'soSearchApp': Unsatisfied dependency expressed through field 'elasticsearchClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'client' defined in class path resource [com/esexperts/config/ElasticsearchConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [co.elastic.clients.elasticsearch.ElasticsearchClient]: Factory method 'client' threw exception; nested exception is java.lang.NoClassDefFoundError: jakarta/json/spi/JsonProvider
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:659) ~[spring-beans-5.3.15.jar:5.3.15]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:639) ~[spring-beans-5.3.15.jar:5.3.15]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.15.jar:5.3.15]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.3.15.jar:5.3.15]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) ~[spring-beans-5.3.15.jar:5.3.15]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) ~[spring-beans-5.3.15.jar:5.3.15]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.15.jar:5.3.15]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.15.jar:5.3.15]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.15.jar:5.3.15]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.15.jar:5.3.15]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.15.jar:5.3.15]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:953) ~[spring-beans-5.3.15.jar:5.3.15]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.15.jar:5.3.15]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.15.jar:5.3.15]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.6.3.jar:2.6.3]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) ~[spring-boot-2.6.3.jar:2.6.3]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) ~[spring-boot-2.6.3.jar:2.6.3]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) ~[spring-boot-2.6.3.jar:2.6.3]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) ~[spring-boot-2.6.3.jar:2.6.3]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) ~[spring-boot-2.6.3.jar:2.6.3]
    at com.esexperts.soSearchApp.main(soSearchApp.java:29) ~[classes/:an]

```

**Can anyone please help me resolve this issue ?**

---

<div class="post-metadata">

**Author:** ![spinscale](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/spinscale/32/25011_2.png) [@spinscale](https://discuss.elastic.co/u/spinscale)\
**Post date:** [March 22, 2022, 12:23pm UTC](https://discuss.elastic.co/t/error-while-creating-elasticsearch-api-client-8-0-1-object-using-spring-boot/300263/2 "2022-03-22T12:23:11Z")

</div>

Wild guess: try adding `'jakarta.json:jakarta.json-api:2.0.1'` as an additional dependency and see if that works...

---

<div class="post-metadata">

**Author:** ![swallez](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/swallez/32/11972_2.png) [@swallez](https://discuss.elastic.co/u/swallez)\
**Post date:** [March 22, 2022, 2:42pm UTC](https://discuss.elastic.co/t/error-while-creating-elasticsearch-api-client-8-0-1-object-using-spring-boot/300263/3 "2022-03-22T14:42:28Z")

</div>

@bhavya does your application have a plugin system or create new classloaders? This may be related to [`JsonProvider` : Support specifying the classloader used to resolve the `JsonProvider` or support specifying the `JsonProvider` implementation · Issue #163 · elastic/elasticsearch-java · GitHub](https://github.com/elastic/elasticsearch-java/issues/163) that has been fixed but not yet released.

---

<div class="post-metadata">

**Author:** ![bhavya](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/bhavya/32/45679_2.png) [@bhavya](https://discuss.elastic.co/u/bhavya)\
**Post date:** [March 22, 2022, 4:29pm UTC](https://discuss.elastic.co/t/error-while-creating-elasticsearch-api-client-8-0-1-object-using-spring-boot/300263/4 "2022-03-22T16:29:29Z")

</div>

@spinscale thanks 😃 This worked for me

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [April 19, 2022, 4:30pm UTC](https://discuss.elastic.co/t/error-while-creating-elasticsearch-api-client-8-0-1-object-using-spring-boot/300263/5 "2022-04-19T16:30:06Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
