Spring Cloud 启动错误 - java.lang.No

作者: 一觉睡到丶小时候 | 来源:发表于2019-10-08 17:03 被阅读0次

启动报错

16:41:12.632 [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:76)
    at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53)
    at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:342)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:305)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1204)
    at com.example.eureka.EurekaServerApplication.main(EurekaServerApplication.java:12)
Disconnected from the target VM, address: '127.0.0.1:56615', transport: 'socket'

是由于spring boot版本兼容性导致的,在pom.xml中修改配置文件,修改前:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.9.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

而eureka的配置

 <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Dalston.SR3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

尤其是第一行信息,似乎提示一个莫名其妙的无此方法错误。Spring boot框架很多组件都是基于依赖注入(DI),有些错误在编译时可能无法被检测出来,只有在运行时才暴露出来。既然提示无此方法,那么肯定是某个组件(包)有问题:要么未被注入;要么版本版本不对。

打开了spring cloud官网,发现SR3版本依赖于spring boot 1.5.x。如此看来是这两个组件的版本发生了冲突,所以解决方法也比较简单:要么降级spring boot版本,要么升级spring cloud版本。

相关文章

网友评论

    本文标题:Spring Cloud 启动错误 - java.lang.No

    本文链接:https://www.haomeiwen.com/subject/gpzbpctx.html