当前位置: 首页 > 知识库问答 >
问题:

升级到Spring Boot 2.4.0将打破遗留应用程序

郎恺
2023-03-14

我正在将一组遗留应用程序升级到Spring Boot2.4.0,运行在OpenJDK8上,部署到Pivotal Cloud Foundry。

Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata

我将spring.config.use-legacy-processing添加到我的application.yml和测试application.properties文件中:

spring:
  config:
    use-legacy-processing: true

仍然没有快乐--所有的测试都失败了。

我被我看到的其他链接弄糊涂了。这是spring-cloud-dependencies的问题吗?我读到Hoxton版本可能存在问题。我需要把它添加到我的应用程序吗?在升级之前,它从来不需要这种依赖关系:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Hoxton.SR9</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
ERROR [main]: Application run failed |ApplicationName=Risk_Advisor | sourcedfrom=ERROR 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationPropertiesBeans' defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]: Post-processing of merged bean definition failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans] from ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2]
java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata

共有1个答案

那存
2023-03-14

当您在spring上进行升级时,pls总是查看spring/cloud兼容性矩阵,然后相应地为spring和cloud升级版本:

另外,pls注意,您可能没有将spring cloud添加为直接依赖项,但它可能会作为传递依赖项进入您的最终jar,因此最好将spring cloud dependency添加为pom中的直接依赖项管理,以避免任何冲突:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring.cloud-version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
 类似资料:
  • 我有一个关于重构遗留PHP应用程序以与PHP的PSR-4标准兼容的问题。我有一些类位于应用程序/类/文件夹,尚未正确命名空间,我想让他们直接自动加载时,我调用作曲家的供应商/autoload.php.我添加了一个名称空间根据

  • null 04:52:42.738警告:没有为分析源文件提供依赖项的字节码,最终可能会得到不太精确的结果。可以使用sonar.java.Libraries属性提供字节码

  • 我不是SSL/TLS专家。但遇到以下情况 我们从一个供应商连接到一个webservice并且“安全策略”是TLSv1,所有的工作都像一个魅力。该供应商将该安全策略升级到TLSV1_2016。 从那时起通信就失败了。当他们重新回滚所有的工作。 这似乎已经足够了。 在AWS上,我发现了以下概述 TLSV1.2支持足以支持SSLv3 TLSV1.0 TLSv1_2016 TLSV1.1_2016 TLS

  • 我正在为我们的应用程序创建升级路径,在此过程中出现了几个问题。我想,我的配置经常在这种情况下使用,所以也许有人以前经历过。 简短的应用程序描述: JSF Web应用程序 ICE作为JSF框架(实际版本1.8.3最新是3.1) 接缝作为EJB/View之间的连接(实际是2.1.1,最新是2.2.2或3) 在JBoss 4.2.2中部署。GA(最新是7.1) 通过Hibernate/Seam Enti

  • 我已经按照http://reactivemongo.org/releases/0.11/documentation/tutorial/play2.html2.3上的说明进行了操作,但仍然得到了如下所示的stacktrace: ---(从SBT运行应用程序,启用自动重新加载)--- [信息]在/0:0:0:0:0:0:0:9000,播放-监听HTTP 请有人告诉我上面的stacktrace实际上是什

  • 我正在使用spring boot 1.2.8和Mongo db 2.4.10。我计划将mongo db升级到3.2.0。 因此,对于当前的sprinb引导1.2.8,我在下面的pom中使用, 我在依赖层次结构中看到了mongo-java-driver版本2.12.5附带的 但是我在mongo java driver doc中看到,它说即使是2.14版本,它也不支持MongoDB3.2的所有特性(例