興致勃勃地跟隨文檔建立並配置Eureka Server工程後,啓動準備測試,發現報了java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder致使啓動失敗,下面就來分析下緣由:java
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)
緣由是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
Release Train | Boot Version |
---|---|
Greenwich測試 |
2.1.xui |
Finchleyspa |
2.0.x.net |
Edgwarecode |
1.5.xserver |
Dalston |
1.5.x |
將SpringBoot版本調整爲1.5.6.RELEASE再啓動就沒有問題了
SpringCloud官方文檔:https://spring.io/projects/spring-cloud
SpringCloud版本:https://blog.csdn.net/i_hanjt/article/details/81947366