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

相关文章
相关标签/搜索