Почему Wildfly 26 внезапно заставляет Spring идентифицировать инъекционные компоненты?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему Wildfly 26 внезапно заставляет Spring идентифицировать инъекционные компоненты?

Сообщение Anonymous »

Я изучаю возможность переноса большой кодовой базы с развертывания на Wildfly 23.0.1 на 26.1.3.
Один из JAR-файлов, развертываемых в EAR, использует Spring и предоставляет точку входа. к ландшафту CDI, в противном случае исключительно EE/EJB:

Код: Выделить всё

@org.springframework.context.annotation.Configuration
public class MyFooComponentFactory {
@Bean
public MyFooComponent() {
return new JndiTemplate()
.lookup(name(MyFooComponent.class), MyFooComponent.class);
}
}
Реализация интерфейса MyFooComponent использует аннотации EJB на уровне поля, например:

Код: Выделить всё

@Resource
private SessionContext ctx;

@EJB
private OtherComponent other;
При работе в Wildfly 23 сервер запускается без проблем. Но когда я пытаюсь выполнить развертывание в Wildfly 26, Spring выдает исключение NoSuchBeanDefinitionException для OtherComponent.
Я покопался в коде платформы Spring и обнаружил это, Wildfly 23, Spring создает org.springframework.beans.factory.annotation.InjectionMetadata с пустыми коллекциями для полей InjectedElements и CheckElements.
Но в Wildfly 26 эти поля не пусты, то есть Spring пытается внедрить их, но они не определены в контексте приложения Spring, поскольку они уже обрабатываются EJB.
Что тут происходит? Оба сервера используют пружинный контекст версии 5.3.22.

Подробнее здесь: https://stackoverflow.com/questions/787 ... components
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»