# Spring boot data Elastic Cloud integration

**URL:** <https://discuss.elastic.co/t/spring-boot-data-elastic-cloud-integration/176383>\
**Category:** Elasticsearch\
**Created:** [April 11, 2019, 10:49am UTC](https://discuss.elastic.co/t/spring-boot-data-elastic-cloud-integration/176383 "2019-04-11T10:49:03Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![dahlsdata](https://avatars.discourse-cdn.com/v4/letter/d/a8b319/32.png) [@dahlsdata](https://discuss.elastic.co/u/dahlsdata)\
**Post date:** [April 11, 2019, 10:49am UTC](https://discuss.elastic.co/t/spring-boot-data-elastic-cloud-integration/176383/1 "2019-04-11T10:49:03Z")

</div>

Hi,

We are using spring-boot 2.1.4 with spring-data-elasticsearch-starter  
This worked perfectly to our self-installed ES cluster running without x-pack. ES version 6.5.2

Then we signed up for Elastic Cloud and got a trial running.  
Since its using X-pack we have added an Xpack transportclient, but its just not working.  
We have now tried everything we can think of and cannot find any information about this by googling.  
Does anyone have any help to offer? It shouldnt be this difficult to connect right?

Here is some sample code and errors:  
pom: spring boot version 2.1.4.RELEASE  
  
org.springframework.boot  
spring-boot-starter-data-elasticsearch  
  
  
org.elasticsearch.client  
transport

```
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>x-pack-transport</artifactId>
        <version>6.2.0</version>
    </dependency>

```

Extra config:

```
@Configuration
public class SearchConfig {
@Value("${elastic.username}")
private String elasticUsername;
@Value("${elastic.password}")
private String elasticPassword;
@Value("${elastic.hostName}")
private String elasticHostname;
@Value("${elastic.clusterName}")
private String elasticClusterName;
@Value("${elastic.port}")
private int elasticPort;

@Bean
public TransportClient elasticsearchClient() {

    String credentials = elasticUsername + ":" + elasticPassword;

    Settings settings = Settings.builder()
            .put("client.transport.nodes_sampler_interval", "5s")
            .put("client.transport.sniff", false)
            .put("transport.tcp.compress", true)
            .put("cluster.name", elasticClusterName)
            .put("xpack.security.transport.ssl.enabled", true)
            .put("request.headers.X-Found-Cluster", elasticClusterName)
            .put("xpack.security.user", credentials)
            .build();

    return new PreBuiltXPackTransportClient(settings)
            .addTransportAddress(new TransportAddress(new InetSocketAddress(elasticHostname, elasticPort)));
}
}

```

And the corresponding errror:

```
Caused by: java.lang.IllegalArgumentException: NamedWriteable [org.elasticsearch.cluster.NamedDiff][persistent_tasks] is already registered for [org.elasticsearch.cluster.ClusterModule$$Lambda$1227/848564270], cannot register [org.elasticsearch.xpack.core.XPackClientPlugin$$Lambda$1234/1686279280]
at org.elasticsearch.common.io.stream.NamedWriteableRegistry.<init>(NamedWriteableRegistry.java:91)
at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:162)
at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:283)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:128)
at org.elasticsearch.xpack.client.PreBuiltXPackTransportClient.<init>(PreBuiltXPackTransportClient.java:59)
at org.elasticsearch.xpack.client.PreBuiltXPackTransportClient.<init>(PreBuiltXPackTransportClient.java:54)
at org.elasticsearch.xpack.client.PreBuiltXPackTransportClient.<init>(PreBuiltXPackTransportClient.java:50)
at no.dahlsdata.elasticsearch.SearchConfig.elasticsearchClient(SearchConfig.java:45)
```

---

<div class="post-metadata">

**Author:** ![Bill\_Bensing](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/bill_bensing/32/45679_2.png) [@Bill\_Bensing](https://discuss.elastic.co/u/Bill_Bensing)\
**Post date:** [May 8, 2019, 4:13pm UTC](https://discuss.elastic.co/t/spring-boot-data-elastic-cloud-integration/176383/2 "2019-05-08T16:13:24Z")

</div>

I found a solution-ish, at the least I progressed to the next error. I updated to the latest version for transport ( 6.7.2 - for this given time) : [https://mvnrepository.com/artifact/org.elasticsearch.client/transport](https://mvnrepository.com/artifact/org.elasticsearch.client/transport)

Here is a link to a helpful post: [Java transport client do not work after upgrade to 6.5.3](https://discuss.elastic.co/t/java-transport-client-do-not-work-after-upgrade-to-6-5-3/161726/3)

-- Previous Comments --

I have come across this same issue this morning. Where you able to find a solution?

I'm wandering if Spring Data is automatically configuring the NamedWriteable bean. I tried the following with no success:

`@SpringBootApplication(exclude = {ElasticsearchAutoConfiguration.class, ElasticsearchDataAutoConfiguration.class})`

```
spring:
  autoconfigure:
    exclude:
      - org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration
      - org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration
```

---

<div class="post-metadata">

**Author:** ![dahlsdata](https://avatars.discourse-cdn.com/v4/letter/d/a8b319/32.png) [@dahlsdata](https://discuss.elastic.co/u/dahlsdata)\
**Post date:** [May 8, 2019, 8:52pm UTC](https://discuss.elastic.co/t/spring-boot-data-elastic-cloud-integration/176383/3 "2019-05-08T20:52:20Z")

</div>

Hello!

In my case it was actually just due to wrong port. Took me some time to figure out. I dont remember exactly the ports and why it was wrong but there was something with the ports.

---

<div class="post-metadata">

**Author:** ![Bill\_Bensing](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/bill_bensing/32/45679_2.png) [@Bill\_Bensing](https://discuss.elastic.co/u/Bill_Bensing)\
**Post date:** [May 10, 2019, 4:09pm UTC](https://discuss.elastic.co/t/spring-boot-data-elastic-cloud-integration/176383/4 "2019-05-10T16:09:55Z")

</div>

Really! That may be my issue. Are you using ESCloud? What is the other standard port than 9243?

---

<div class="post-metadata">

**Author:** ![dahlsdata](https://avatars.discourse-cdn.com/v4/letter/d/a8b319/32.png) [@dahlsdata](https://discuss.elastic.co/u/dahlsdata)\
**Post date:** [May 10, 2019, 6:55pm UTC](https://discuss.elastic.co/t/spring-boot-data-elastic-cloud-integration/176383/5 "2019-05-10T18:55:05Z")

</div>

Try 9343

Works 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:** [June 7, 2019, 6:55pm UTC](https://discuss.elastic.co/t/spring-boot-data-elastic-cloud-integration/176383/6 "2019-06-07T18:55:06Z")

</div>

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