Сварщик не может найти бин в другой банке на пути к классам при запуске из командной строки
У меня есть простое отдельное приложение, которое использует weld-se, но мне не удается обнаружить bean-компоненты из всех архивов bean-файлов на моем classpath
По сути, у меня есть несколько файлов JAR в каталоге, где я запускаю:
java -classpath * a.b.c.Generator
Два из этих файлов jar являются архивами bean-компонентов, и компоненты, содержащиеся в jar-файле, где происходит weld.initialize(), хорошо обнаружены.
Тем не менее, те из других файлов JAR полностью игнорируются. Это кажется странным для меня, хотя мне не интересно, действительно ли это так, как было задумано. И если да, то каково было бы другое решение?
1 ответ
В моем случае я не смог заставить Weld обнаруживать bean-компоненты в других jar-файлах на моем пути к классам при работе через командную строку, как упоминалось выше.
Зарегистрированный beanmanager обнаруживает только bean-компоненты с файлом jar, где инициализируется Weld. Ведение журнала указывает на это, отмечая "Bean manager for "/jar/C:/....", то есть только для одного файла JAR.
Чтобы обойти это, я объединил все jar-файлы, из которых мне нужны обнаруженные bean-компоненты (с пустым META-INF/beans.xml), а затем запустил свое приложение, как описано выше.