Weld-se не может найти bean-компонент в другой банке на пути к классам при запуске из командной строки

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

По сути, у меня есть куча файлов jar в каталоге, в котором я запускаю:

java -classpath * a.b.c.Generator

Два из этих jar-файлов представляют собой архивы bean-компонентов, и bean-компоненты, содержащиеся в jar-файле, в котором происходит сварка.initialize(), прекрасно обнаруживаются.

Однако файлы из других jar-файлов полностью игнорируются. Мне это кажется странным, хотя я не задаюсь вопросом, действительно ли это было задумано. И если да, то каким было бы другое решение?


person Steven De Groote    schedule 04.02.2019    source источник


Ответы (1)


В моем случае мне не удалось заставить Weld обнаружить bean-компоненты в других банках на моем пути к классам при запуске через командную строку, как уже упоминалось.

Beanmanager, который регистрируется, обнаруживает только bean-компоненты с jar-файлом, в котором инициализирован Weld. Регистрация указывает на это, отмечая «Диспетчер компонентов для «/jar/C:/....», то есть только для одного файла jar.

Чтобы обойти это, я объединил все файлы jar, из которых мне нужно обнаружить bean-компоненты (с пустым META-INF/beans.xml), а затем запустил свое приложение, как указано выше.

person Steven De Groote    schedule 06.02.2019