簡體   English   中英

如何在 Spring Boot 2.6.4 版的另一個 Spring Boot 服務中使用 Spring Boot 2.1.4.RELEASE 版的 AOP 服務

[英]How I can consume an AOP service of Spring Boot version 2.1.4.RELEASE in another spring boot service of Spring Boot version 2.6.4

有一個單獨的 Spring boot api (as AOP Api) (ei creez-aop-service ) 用於通過公共 api (ei creez-common-service ) 用於另一個 Spring boot 服務 (ei creez-main-service ) 的日志記錄

Spring Boot 版本已經升級到2.6.4這兩個服務 ei

  • creez-主要服務
  • creez-common-service

雖然 AOP 服務仍處於其舊版本 ei 2.1.4.RELEASE

  • creez-aop-服務

並且由於此 aop 服務 (creez-aop-service) 當前正在某個其他模塊中使用,因此我們目前無法升級此 aop 服務。 什么在我所有升級的服務中使用相同的 aop 服務

如何在升級的 spring boot 模塊(版本 2.6.4)中使用這個creez-aop-service (舊版本 2.1.4.RELEASE)?

當我使用它時,我得到了以下異常:

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans]: Factory method 'configurationPropertiesBeans' threw exception; nested exception is java.lang.NoClassDefFoundError: org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
    ... 36 common frames omitted
Caused by: java.lang.NoClassDefFoundError: org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata
    at org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration.configurationPropertiesBeans(ConfigurationPropertiesRebinderAutoConfiguration.java:56)
    at org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a8e43f25.CGLIB$configurationPropertiesBeans$1(<generated>)
    at org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a8e43f25$$FastClassBySpringCGLIB$$b00bd25d.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)
    at org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$a8e43f25.configurationPropertiesBeans(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
    ... 37 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata
    at java.net.URLClassLoader.findClass(URLClassLoader.java:591)
    at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:953)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:898)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:881)
    ... 48 common frames omitted

我已經按照Spring Cloud的建議修復了這個解決方案,它對我有用

通過在 pom.xml 中添加以下標記,該問題與 Spring Cloud 版本有關

    <properties>
        <spring-cloud.version>2021.0.1</spring-cloud.version>
    </properties>

    <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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM