Spring Cloud Config Client not working with spring boot 2.5.1 - spring-boot

Spring cloud config client not working with Spring Boot 2.5.1 but working with 2.5.0.
application-dev.yml
spring:
config:
import: configserver:http://localhost:8270/
cloud:
config:
enabled: true
Error
***************************
APPLICATION FAILED TO START
***************************
Description:
Config data location 'configserver:http://localhost:8270/' does not exist
Action:
Check that the value 'configserver:http://localhost:8270/' at class path resource [application-dev.yml] - 3:13 is correct, or prefix it with 'optional:'
pom.xml
...
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
...
...
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
...
I am running Spring Cloud Config Server with Spring boot 2.4.4 and Spring Cloud version 2020.0.1

This is due to a regression in Spring Boot 2.4.7 and 2.5.1. The regression means that the import will not work when it’s declared in a profile-specific file. Until it has been fixed you could stay on an earlier version of Boot or temporarily move the import to application.yml.

Related

Springboot client server architecture

Created Eureka discovery client and server architecture. In client there is userInfo service CRUD opeartion. Its showing error while starting . Error is Error creating bean with name 'configurationPropertiesBeans' defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]: Post-processing of merged bean definition failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader#2626b418].
This looks like an issue with the Spring boot version and Spring Cloud version. As per the reference Deprecated ConfigurationBeanFactoryMetadata is removed in Spring Boot 2.3.0.M1, the reported class is deprecated.
Please choose the correct version of Spring Boot and Spring Cloud to continue, refer to Release train Spring Boot compatibility
Pasting my pom.xml version for reference, hope it helps:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath />
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>15</java.version>
<spring-cloud.version>2020.0.1</spring-cloud.version>
</properties>

Duplicate key Endpoint exception while starting - in Spring Boot Admin Client

I'm trying to configure Spring Boot Admin Client but i'm start the client application not able to register with Server. While starting of the application I'm getting the below exception.
java.lang.IllegalStateException: Duplicate key Endpoint(id=threaddump, url=http://localhost:9082/client-web/management/actuator/dump)
i'm using dependency version of client same version which I have used it for Spring Boot Admin Server
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.0.1</version>
</dependency>
what's causing the issue?
It was the known bug in 'Spring boot admin 1.x'. But has been fixed in the later version (2.0.2).
Endpoints list is obtained from the AdminServerProperties class and defaults to
{
"health", "env", "metrics", "httptrace:trace",
"httptrace","threaddump:dump","threaddump", "jolokia", "info",
"logfile", "refresh", "flyway",
"liquibase", "heapdump", "loggers","auditevents"
};
The problem with the duplicate key seems to be caused by the presence of both "httptrace:trace" and "httptrace" (and similarly for threaddump)
Overriding this in config by adding the line seems to solve the problem.
spring.boot.admin.probed-endpoints: [ "health", "env", "metrics", "httptrace:trace", "threaddump:dump", "jolokia", "info", "logfile", "refresh", "flyway", "liquibase", "heapdump", "loggers", "auditevents" ]
Pls see this for more: https://github.com/codecentric/spring-boot-admin/issues/828
Alternatively, you can update pom.xml as below
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.0.2 or above</version>
</dependency>

Do Spring LDAP and Spring Cloud Consul work together?

I had a project with Spring LDAP in place. I am trying to put in Spring Consul into this project and have been facing issues with respect to it.
Here is the pom.xml :
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-all</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
Here is application properties :
#consul properties
spring.cloud.consul.config.format=PROPERTIES
spring.cloud.consul.discovery.healthCheckPath=/<root>/health
spring.cloud.consul.discovery.healthCheckInterval=15s
spring.application.name=<App_Name>
spring.profiles.active=dev
And I enabled discovery client using #EnableDiscoveryClient on SpringBootApplication class.
But, I am ending up with this error and the app never starts :
***************************
APPLICATION FAILED TO START
***************************
Description:
Field ldapTemplate in com.<package>.config.LdapClient required a bean of type 'org.springframework.ldap.core.LdapTemplate' that could not be found.
- Bean method 'ldapTemplate' not loaded because #ConditionalOnClass did not find required class 'org.springframework.data.ldap.repository.LdapRepository'
Action:
Consider revisiting the conditions above or defining a bean of type 'org.springframework.ldap.core.LdapTemplate' in your configuration.
Disconnected from the target VM, address: '127.0.0.1:62703', transport: 'socket'
I figure it has something to do with autodiscovery of Ldap and introducing Consul is causing this issue, but, I am not able to pin-point the problem.
Can someone please help me resolve this issue?

Spring boot 2.0.0.M1 NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init>

I used the starter page on https://start.spring.io/ to generate a project with a number of included modules
When I try to run the tests I get a lot of log info but these lines seem key
10:29:33.198 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding [Inlined Test Properties] PropertySource with highest search precedence
10:29:33.364 [main] DEBUG org.springframework.boot.context.logging.ClasspathLoggingApplicationListener - Application failed to start with classpath: [file:/C:/privilege/target/surefire/surefirebooter1615922581175854972.jar]
10:29:33.369 [main] ERROR org.springframework.boot.SpringApplication - Application startup failed
java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init>([Ljava/lang/Object;)V
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:157)
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:98)
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:64)
The modules that I selected are:
Security
AOP
Web Jersey (JAX-RS)
Rest Repositories
DevTools
Cache
Session
Mobile
REST
Docs
Thymeleaf
MongoDB
Zuul
Zookeeper Discovery
Solr
Cloud
OAuth2
Lombok
Retry
I had to make a few mods to the generated pom but I think that I have a reasonable set of versions.
From the "effective pom" generated by STS, get the following properties:
<spring-batch.version>4.0.0.M2</spring-batch.version>
<undertow.version>1.4.14.Final</undertow.version>
<httpclient.version>4.5.3</httpclient.version>
<maven-surefire-plugin.version>2.18.1</maven-surefire-plugin.version>
<webjars-locator.version>0.32-1</webjars-locator.version>
<spring-ldap.version>2.3.1.RELEASE</spring-ldap.version>
<spring-security-oauth.version>2.1.0.RELEASE</spring-security-oauth.version>
<hibernate.version>5.2.10.Final</hibernate.version>
<groovy.version>2.4.11</groovy.version>
<rxjava2.version>2.1.0</rxjava2.version>
<byte-buddy.version>1.6.14</byte-buddy.version>
<spring-social-linkedin.version>2.0.0.M2</spring-social-linkedin.version>
<jmustache.version>1.13</jmustache.version>
<spring-cloud-connectors.version>2.0.0.M1</spring-cloud-connectors.version>
<mockito.version>2.7.22</mockito.version>
<reactor-bom.version>Bismuth-M1</reactor-bom.version>
<maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
<java.version>1.8</java.version>
<bitronix.version>2.1.4</bitronix.version>
<commons-beanutils.version>1.9.3</commons-beanutils.version>
<exec-maven-plugin.version>1.5.0</exec-maven-plugin.version>
<atomikos.version>3.9.3</atomikos.version>
<maven-javadoc-plugin.version>2.10.4</maven-javadoc-plugin.version>
<jersey.version>2.25.1</jersey.version>
<jaxen.version>1.1.6</jaxen.version>
<caffeine.version>2.5.0</caffeine.version>
<couchbase-cache-client.version>2.1.0</couchbase-cache-client.version>
<sun-mail.version>1.6.0-rc1</sun-mail.version>
<lettuce.version>5.0.0.M2</lettuce.version>
<wsdl4j.version>1.6.3</wsdl4j.version>
<jedis.version>2.9.0</jedis.version>
<javax-mail.version>1.6.0-rc1</javax-mail.version>
<lombok.version>1.16.16</lombok.version>
<maven-failsafe-plugin.version>2.18.1</maven-failsafe-plugin.version>
<activemq.version>5.14.5</activemq.version>
<spring-security-jwt.version>1.0.7.RELEASE</spring-security-jwt.version>
<spring-mobile.version>2.0.0.M1</spring-mobile.version>
<log4j2.version>2.8.2</log4j2.version>
<hazelcast-hibernate5.version>1.2.1</hazelcast-hibernate5.version>
<janino.version>3.0.7</janino.version>
<aspectj.version>1.8.10</aspectj.version>
<versions-maven-plugin.version>2.3</versions-maven-plugin.version>
<spring-kafka.version>2.0.0.M2</spring-kafka.version>
<tomcat.version>8.5.15</tomcat.version>
<postgresql.version>42.1.1</postgresql.version>
<statsd-client.version>3.1.0</statsd-client.version>
<spring-social-twitter.version>2.0.0.M2</spring-social-twitter.version>
<flyway.version>4.2.0</flyway.version>
<snakeyaml.version>1.18</snakeyaml.version>
<maven-enforcer-plugin.version>1.4</maven-enforcer-plugin.version>
<spring-cloud-starter-zuul.version>1.3.0.RELEASE</spring-cloud-starter-zuul.version>
<resource.delimiter>#</resource.delimiter>
<maven-dependency-plugin.version>2.10</maven-dependency-plugin.version>
<spring-cloud-starter-zookeeper-discovery.version>1.1.0.RELEASE</spring-cloud-starter-zookeeper-discovery.version>
<assertj.version>3.7.0</assertj.version>
<hikaricp.version>2.6.1</hikaricp.version>
<nekohtml.version>1.9.22</nekohtml.version>
<jest.version>2.4.0</jest.version>
<javax-transaction.version>1.2</javax-transaction.version>
<hazelcast.version>3.8.1</hazelcast.version>
<glassfish-el.version>3.0.0</glassfish-el.version>
<mariadb.version>2.0.1</mariadb.version>
<javax-validation.version>1.1.0.Final</javax-validation.version>
<thymeleaf-extras-java8time.version>3.0.0.RELEASE</thymeleaf-extras-java8time.version>
<spring-social.version>2.0.0.M3</spring-social.version>
<spring-security.version>5.0.0.M1</spring-security.version>
<solr.version>6.5.1</solr.version>
<maven-eclipse-plugin.version>2.10</maven-eclipse-plugin.version>
<neo4j-ogm.version>3.0.0-M01</neo4j-ogm.version>
<servlet-api.version>3.1.0</servlet-api.version>
<joda-time.version>2.9.9</joda-time.version>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<hibernate-validator.version>5.4.1.Final</hibernate-validator.version>
<jaybird.version>3.0.0</jaybird.version>
<commons-collections.version>3.2.2</commons-collections.version>
<liquibase.version>3.5.3</liquibase.version>
<maven-resources-plugin.version>3.0.1</maven-resources-plugin.version>
<embedded-mongo.version>2.0.0</embedded-mongo.version>
<spring-integration.version>5.0.0.M4</spring-integration.version>
<querydsl.version>4.1.4</querydsl.version>
<mongodb.version>3.4.2</mongodb.version>
<commons-codec.version>1.10</commons-codec.version>
<antlr2.version>2.7.7</antlr2.version>
<maven-jar-plugin.version>3.0.2</maven-jar-plugin.version>
<xml-apis.version>1.4.01</xml-apis.version>
<selenium.version>3.4.0</selenium.version>
<jetty-el.version>8.5.9.1</jetty-el.version>
<maven-help-plugin.version>2.2</maven-help-plugin.version>
<jetty.version>9.4.5.v20170502</jetty.version>
<ehcache.version>2.10.4</ehcache.version>
<mssql-jdbc.version>6.1.0.jre8</mssql-jdbc.version>
<spring-retry.version>1.2.0.RELEASE</spring-retry.version>
<mongo-driver-reactivestreams.version>1.3.0</mongo-driver-reactivestreams.version>
<ehcache3.version>3.3.1</ehcache3.version>
<simple-json.version>1.1.1</simple-json.version>
<couchbase-client.version>2.4.5</couchbase-client.version>
<narayana.version>5.5.24.Final</narayana.version>
<freemarker.version>2.3.26-incubating</freemarker.version>
<infinispan.version>8.2.6.Final</infinispan.version>
<unboundid-ldapsdk.version>3.2.1</unboundid-ldapsdk.version>
<httpasyncclient.version>4.1.3</httpasyncclient.version>
<thymeleaf-extras-springsecurity4.version>3.0.2.RELEASE</thymeleaf-extras-springsecurity4.version>
<spring-social-facebook.version>3.0.0.M2</spring-social-facebook.version>
<classmate.version>1.3.3</classmate.version>
<artemis.version>1.5.4</artemis.version>
<spring-plugin.version>1.2.0.RELEASE</spring-plugin.version>
<spring.version>5.0.0.RC1</spring.version>
<selenium-htmlunit.version>2.26</selenium-htmlunit.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<appengine-sdk.version>1.9.53</appengine-sdk.version>
<rxjava.version>1.3.0</rxjava.version>
<maven-shade-plugin.version>2.4.3</maven-shade-plugin.version>
<netty.version>4.1.11.Final</netty.version>
<commons-dbcp2.version>2.1.1</commons-dbcp2.version>
<htmlunit.version>2.26</htmlunit.version>
<jboss-transaction-spi.version>7.6.0.Final</jboss-transaction-spi.version>
<hamcrest.version>1.3</hamcrest.version>
<spring-cloud-starter-oauth2.version>1.2.0.RELEASE</spring-cloud-starter-oauth2.version>
<junit.version>4.12</junit.version>
<maven-install-plugin.version>2.5.2</maven-install-plugin.version>
<javax-cache.version>1.0.0</javax-cache.version>
<build-helper-maven-plugin.version>1.10</build-helper-maven-plugin.version>
<javax-jms.version>2.0.1</javax-jms.version>
<jtds.version>1.3.1</jtds.version>
<mysql.version>5.1.42</mysql.version>
<slf4j.version>1.7.25</slf4j.version>
<git-commit-id-plugin.version>2.2.2</git-commit-id-plugin.version>
<maven-compiler-plugin.version>3.1</maven-compiler-plugin.version>
<derby.version>10.13.1.1</derby.version>
<thymeleaf-layout-dialect.version>2.2.1</thymeleaf-layout-dialect.version>
<jooq.version>3.9.2</jooq.version>
<logback.version>1.2.3</logback.version>
<maven-clean-plugin.version>3.0.0</maven-clean-plugin.version>
<thymeleaf-spring5.version>3.0.6.M4</thymeleaf-spring5.version>
<rxjava-adapter.version>1.2.1</rxjava-adapter.version>
<spring-restdocs.version>1.2.1.RELEASE</spring-restdocs.version>
<jsonassert.version>1.5.0</jsonassert.version>
<spring-session.version>2.0.0.M1</spring-session.version>
<elasticsearch.version>2.4.5</elasticsearch.version>
<spring-cloud.version>Finchley.BUILD-SNAPSHOT</spring-cloud.version>
<httpcore.version>4.4.6</httpcore.version>
<sqlite-jdbc.version>3.16.1</sqlite-jdbc.version>
<dom4j.version>1.6.1</dom4j.version>
<thymeleaf-extras-data-attribute.version>2.0.1</thymeleaf-extras-data-attribute.version>
<jdom2.version>2.0.6</jdom2.version>
<javassist.version>3.21.0-GA</javassist.version>
<jetty-jsp.version>2.2.0.v201112011158</jetty-jsp.version>
<json-path.version>2.2.0</json-path.version>
<spring-hateoas.version>0.23.0.RELEASE</spring-hateoas.version>
<spring.boot.version>2.0.0.M1</spring.boot.version>
<sendgrid.version>3.2.0</sendgrid.version>
<spring-data-releasetrain.version>Kay-M3</spring-data-releasetrain.version>
<spring-ws.version>2.4.0.RELEASE</spring-ws.version>
<dropwizard-metrics.version>3.2.2</dropwizard-metrics.version>
<commons-pool.version>1.6</commons-pool.version>
<jboss-logging.version>3.3.1.Final</jboss-logging.version>
<jstl.version>1.2</jstl.version>
<webjars-hal-browser.version>3325375</webjars-hal-browser.version>
<maven-war-plugin.version>2.6</maven-war-plugin.version>
<gson.version>2.8.0</gson.version>
<h2.version>1.4.195</h2.version>
<cassandra-driver.version>3.2.0</cassandra-driver.version>
<jolokia.version>1.3.6</jolokia.version>
<maven-assembly-plugin.version>2.6</maven-assembly-plugin.version>
<commons-digester.version>2.1</commons-digester.version>
<jackson.version>2.9.0.pr3</jackson.version>
<jna.version>4.4.0</jna.version>
<maven-source-plugin.version>3.0.1</maven-source-plugin.version>
<maven.compiler.target>1.8</maven.compiler.target>
<commons-lang3.version>3.5</commons-lang3.version>
<maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
<thymeleaf.version>3.0.6.RELEASE</thymeleaf.version>
<commons-pool2.version>2.4.2</commons-pool2.version>
<maven-site-plugin.version>3.5.1</maven-site-plugin.version>
<maven-invoker-plugin.version>1.10</maven-invoker-plugin.version>
<spring-amqp.version>2.0.0.M4</spring-amqp.version>
<maven.compiler.source>1.8</maven.compiler.source>
<hsqldb.version>2.4.0</hsqldb.version>
The constructor of SpringApplicationBuilder has recently been changed in spring-boot 2.0.0.M1.
I had the same problem, but after updating to spring-cloud Finchley.BUILD-SNAPSHOT it disappeared. However, that's the version I see in your properties above.
In the end, I'm not exactly sure what causes your problem (and maybe shouldn't post this as an answer, but it's too long for a comment) but maybe that's a start for further investigation.
Since 2.0.0.M1 is not stable, you may want to wait for spring-boot 2.0.0 to be released. Otherwise, try deleting your local SNAPSHOT versions of spring.
I'll update this answer if I figure out more.
Just check spring-cloud-starter server version compatibility with spring-boot-starter-parent. This will help and it will resolve
15:49:31.609 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init>([Ljava/lang/Object;)V
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.bootstrapServiceContext(BootstrapApplicationListener.java:125)
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:89)
at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:62)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:364)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1277)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1265)
In my case I've resolved this using spring-boot-starter-parent version 2.0.5.RELEASE and spring-cloud-starter-netflix-eureka-server with version Finchley.SR1.
Also added spring-cloud-starter-config dependencies with it.
Thanks and Hope It will help you.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
adding above tag for
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
resolved my problem, it's issue with spring - cloud and spring 2.1.x versions
Just complementing #Michel Jung's answer, I just needed to keep the spring-boot version as the same:
2.0.4.RELEASE
And add the Finchley.RELEASE's mavenBom as recommended here:
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:Finchley.RELEASE"
}
}
repositories {
maven {
url 'https://repo.spring.io/libs-milestone'
}
}
You need to check the consistency between Spring boot version and Release train version. Full documentation is HERE
You need to check Table 1. Release train Spring Boot compatibility
For example, if you use Spring Boot 2.4.x version, consistent Release train is 2020.0.x
For 2.2.0.RELEASE Spring Boot version compatible Release Train is Hoxton.RELEASE
In the dependencies it looks like:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.0.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.11</java.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Usually these factors are very simple, just find all dependencies with prefix "spring",
find out them have difference with the train version.
see
I think it is mainly happening because of the spring-cloud version. I am using 2.1.8.RELEASE of spring-boot-starter-parent and here are my findings
Tried by spring-cloud Camden.SR6 - Didn't work.
Tried by spring-cloud Finchley.SR1 - It worked this time.
I had this same problem in Java 8 while doing a project with the feign dependency, but I fixed it by changing it to the following:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.0.1.RELEASE</version>`
</dependency>

spring-boot upgrade from 1.3.2 to 1.3.3: logback issue

We've hit an issue when upgrading from spring-boot 1.3.2 to the recently released 1.3.3.
Our application has been making use of the following dependencies, each the latest, without issue:
<neo4j.version>2.3.2</neo4j.version>
<sdn.version>4.0.0.RELEASE</sdn.version>
<sdn.rest.version>3.4.0.RELEASE</sdn.rest.version>
<neo4j.ogm.version>1.1.5</neo4j.ogm.version>
Today I upgraded our spring-boot and Spring Data Neo4j -based application, which starts and works well with spring-boot 1.3.2.RELEASE, by changing the pom.xml from:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.2.RELEASE</version>
</parent>
to
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
</parent>
With this being literally the only change, the application now fails to start with the following error:
...
Failed to instantiate [ch.qos.logback.classic.LoggerContext]
Reported exception:
java.lang.AbstractMethodError: ch.qos.logback.classic.pattern.EnsureExceptionHandling.process(Lch/qos/logback/core/pattern/Converter;)V
at ch.qos.logback.core.pattern.PatternLayoutBase.start(PatternLayoutBase.java:88)
at ch.qos.logback.classic.encoder.PatternLayoutEncoder.start(PatternLayoutEncoder.java:28)
at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:167)
at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:317)
at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:196)
at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:182)
at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:62)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:149)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:135)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:99)
at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:49)
at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:77)
at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:152)
at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:85)
at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:143)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:122)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:378)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:328)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:349)
at com.mycompany.Application.<clinit>(Application.java:35)
As expected, returning to 1.3.2.RELEASE does not cause any issues.
Searching so far reveals no trail to follow. Comparing the mvn dependency:tree output between using spring-boot 1.3.2.RELEASE and 1.3.3.RELEASE, I can see that the transient dependencies of ch.qos.logback:logback-classic and ch.qos.logback:logback-access jars have changed from 1.1.3 for spring-boot 1.3.2.RELEASE to 1.1.5 for spring-boot 1.3.3.RELEASE, while ch.qos.logback:logback-core remains at 1.1.3 for both spring-boot flavors.
Does anyone have any idea of what the underlying issue is (I'm guessing the class failing to instantiate has been removed or relocated) and/or -- more importantly -- what I can do to resolve it?
Spring Boot is missing some dependency management for logback-core which is allowing different versions to creep in. I've opened an issue to address that.
In the meantime, you can avoid the problem by adding your own dependency management for it to your pom:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
</dependencies>
</dependencyManagement>

Resources