首页 > 解决方案 > 从命令行运行时,weld-se 无法在类路径的不同 jar 中找到 bean

问题描述

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

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

java -classpath * a.b.c.Generator

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

但是,来自其他 jar 文件的那些将被完全忽略。这对我来说似乎很奇怪,尽管我不知道这是否真的是它的意图。如果是这样,有什么不同的解决方案?

标签: jarcdiweld-se

解决方案


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

注册的 beanmanager 只发现带有初始化 Weld 的 jar 文件的 bean。日志记录表明这一点,注意“/jar/C:/....”的 Bean 管理器,因此仅用于一个 jar 文件。

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


推荐阅读