Обновление Spring Boot 2 не может разрешить имя класса как свойство - PullRequest
0 голосов
/ 07 июня 2019

У нас есть приложение, в котором одна из наших внутренних библиотек определила bean-компонент, подобный этому

<bean id="myBean" class="${myBean.type}"/>

У нас есть сервер Spring Cloud Config, который при запуске передает свойства этому приложению, который также содержит свойство myBean.type.Эта настройка в настоящее время работает без проблем.Затем я внес следующие изменения в свой pom

Ранее

<spring.boot.version>1.5.16.RELEASE</spring.boot.version>
<spring.cloud.version>Edgware.RELEASE</spring.cloud.version>
<spring.version>4.3.19.RELEASE</spring.version>

Now

<spring.boot.version>2.0.9.RELEASE</spring.boot.version>
<spring.version>5.0.13.RELEASE</spring.version>
<spring.cloud.version>Finchley.SR2</spring.cloud.version>

Затем я началПолучение этой ошибки при запуске

An attempt was made to call the method org.springframework.beans.factory.support.BeanDefinitionBuilder.addConstructorArg(Ljava/lang/Object;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder; but it does not exist. Its class, org.springframework.beans.factory.support.BeanDefinitionBuilder, is available from the following locations:

    jar:file:/I:/Library/MavenRepository/org/springframework/spring-beans/5.0.13.RELEASE/spring-beans-5.0.13.RELEASE.jar!/org/springframework/beans/factory/support/BeanDefinitionBuilder.class

It was loaded from the following location:

    file:/I:/Library/MavenRepository/org/springframework/spring-beans/5.0.13.RELEASE/spring-beans-5.0.13.RELEASE.jar


Action:

Correct the classpath of your application so that it contains a single, compatible version of org.springframework.beans.factory.support.BeanDefinitionBuilder

Глядя на это, я исключил артефакт org.apache.cxf:cxf-api:jar:2.7.18:compile из всех jar-файлов, которые зависели от него, и обновил версии jx-файлов cxf до 3.2.5.Теперь запуск запускается, но он выдает мне следующую ошибку:

org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [${myBean.type}] for bean with name 'myBean' defined in class path resource [xyz.xml]; nested exception is java.lang.ClassNotFoundException: ${myBean.type}

Я не уверен, что удаление cxf-api вызывает эту проблему, или обновление Spring Boot 2, или это что-тоиначе здесь что-то идет не так!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...