首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更正应用程序的类路径,使其包含类org.springframework.boot.SpringApplication的兼容版本。

更正应用程序的类路径,使其包含类org.springframework.boot.SpringApplication的兼容版本。
EN

Stack Overflow用户
提问于 2022-05-02 10:58:42
回答 1查看 2.6K关注 0票数 0

在RCE漏洞之后,我最近通过sprint引导将其升级到2.6.6。然而,现在我的应用程序并没有以错误开始:

应用程序启动失败

描述:

试图调用不存在的方法。该尝试是在以下位置进行的: org.springframework.boot.SpringApplication.run(SpringApplication.java:301)

以下方法不存在:'void org.springframework.context.ConfigurableApplicationContext.setApplicationStartup(org.springframework.core.metrics.ApplicationStartup)‘’

调用方法的类org.springframework.boot.SpringApplication是从以下位置加载的:

jar:file:/Users/mahulivishal/.m2/repository/org/springframework/boot/spring-boot/2.6.6/spring-boot-2.6.6.jar!/org/springframework/boot/SpringApplication.class

被调用方法的类org.springframework.context.ConfigurableApplicationContext,可以从以下位置获得:

jar:file:/Users/mahulivishal/.m2/repository/org/springframework/spring-context/5.2.5.RELEASE/spring-context-5.2.5.RELEASE.jar!/org/springframework/context/ConfigurableApplicationContext.class

从以下位置加载了被调用方法的类层次结构:

org.springframework.context.ConfigurableApplicationContext: file:/Users/mahulivishal/.m2/repository/org/springframework/spring-context/5.2.5.RELEASE/spring-context-5.2.5.RELEASE.jar

操作:

更正应用程序的类路径,以便它包含类org.springframework.context.ConfigurableApplicationContext和org.springframework.boot.SpringApplication的兼容版本。

进程已完成,退出代码为%1

下面是我的pom.xml中的依赖项-

代码语言:javascript
运行
复制
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.6</version>
    </parent>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.6.6</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.5.RELEASE</version>
    </dependency>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-09 07:55:26

我找到了解决办法。这里总共有两个问题:

5.2.5.RELEASE

  • Spring已将对netflix-zuul的支持转移到维护模式,因此Zuul无法与2.6.6

兼容。

解决方案:为Zuul支持将spring-boot降级为2.4.12 (2.4.x),并将spring版本升级到5.3.18,以防止暴露于RCE漏洞。另外,使用3.0.1来实现春云上下文的不兼容性.删除spring上下文依赖项。

代码语言:javascript
运行
复制
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.12</version>
    <properties>
       <java.version>11</java.version>
       <log4j2.version>2.16.0</log4j2.version>
       <spring.version>5.3.18</spring.version>
    </properties>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.4.12</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bootstrap</artifactId>
        <version>3.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        <version>2.2.2.RELEASE</version>
    </dependency>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72085721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档