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

Viewed 66527

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>
8 Answers

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

  1. Tried by spring-cloud Camden.SR6 - Didn't work.
  2. 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>
Related