Расширение класса CDI приводит к сбою обнаружения контейнерного компонента Wildfly

При подготовке к добавлению пользовательской области CDI я добавил класс, который реализует интерфейс расширения CDI spi. В классе нет кода:

public class TaskScopedExtension implements Extension, Serializable {
}

Простое включение класса в развертывание приводит к сбою всех обнаружений других компонентов CDI. Я не добавил никакого другого кода или файлов. Очевидно, что Wildfly сканирует развертывание в поисках расширения, но я не могу понять, почему простое включение класса приведет к сбою остальных инъекций. Я не нашел ничего полезного в документации по Java EE или Weld. Я попытался добавить Observables в события обнаружения bean-компонентов до и после, и я попытался добавить файл javax.enterprise.inject.spi.Extension в развертывание. Кажется, ни один из них не имеет значения.

Любая помощь приветствуется.

1 ответ

Решение

Я полагаю, вы сталкиваетесь с одной очень специфической частью спецификации. Возможно, остаток оставлен для обратной совместимости. Это раздел 12.1 Bean Archives - "Архив, который содержит расширение и не содержит ни одного файла beans.xml, не является архивом бинов".

добавлять beans.xml с желаемым режимом обнаружения (или даже пустым), и вы должны снова включить его.

Другие вопросы по тегам