从命令行运行时,weld-se无法在类路径的其他jar中找到bean

时间:2019-02-04 09:51:50

标签: jar cdi weld-se

我有一个使用weld-se的简单独立应用程序,但是我无法从类路径上的所有bean存档中检测到bean

基本上,我在运行的目录中有一堆jar文件:

java -classpath * a.b.c.Generator

这些jar文件中有两个是bean档案,并且很好地发现了执行weld.initialize()的jar中包含的bean。

但是,其他jar文件中的文件将被完全忽略。这对我来说似乎很奇怪,尽管我并不怀疑这实际上是如何实现的。如果是这样,有什么不同的解决方案?

1 个答案:

答案 0 :(得分:0)

就我而言,当通过上述命令行运行时,我无法让Weld在我的类路径上的其他jar中发现bean。

被注册的beanmanager仅在初始化Weld的jar文件中发现bean。记录表明这一点,并指出“用于/ jar / C:/ ....”的Bean管理器,因此仅用于一个jar文件。

要解决此问题,我合并了需要从中找到所有bean的所有jar文件(带有空的META-INF / beans.xml),然后像上面那样运行我的应用程序。