SpringCloud版本問題

興致勃勃地跟隨文檔建立並配置Eureka Server工程後,啓動準備測試,發現報了java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder致使啓動失敗,下面就來分析下緣由:java

1、問題:

SpringBoot工程在配置Eureka Server後啓動報錯:spring

12:37:49.426 [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:157) at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:98) at org.springframework.cloud.bootstrap.BootstrapApplicationListener.onApplicationEvent(BootstrapApplicationListener.java:64) 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:75) at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:347) at org.springframework.boot.SpringApplication.run(SpringApplication.java:306) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) at com.zrk.eurekaserver.EurekaServerApplication.main(EurekaServerApplication.java:12)

2、緣由

緣由是SpringCloud與SpringBoot版本兼容問題bootstrap

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.zrk</groupId>
    <artifactId>eureka-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-server</name>
    <description>Eureka Server</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <!-- 使用dependencyManagement進行版本管理 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.SR5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>

    </dependencyManagement>

用的SpringCloud版本爲Dalston.SR5,SpringBoot版本爲2.1.3.RELEASE,而參考官方文檔SpringCloud發佈版本對應的SpringBoot兼容版本以下:spring-boot

Table 1. Release train Spring Boot compatibility
Release Train Boot Version

Greenwich測試

2.1.xui

Finchleyspa

2.0.x.net

Edgwarecode

1.5.xserver

Dalston

1.5.x

3、解決

將SpringBoot版本調整爲1.5.6.RELEASE再啓動就沒有問題了

4、相關參考

SpringCloud官方文檔:https://spring.io/projects/spring-cloud

SpringCloud版本:https://blog.csdn.net/i_hanjt/article/details/81947366

相關文章
相關標籤/搜索