jar - 从命令行运行时,weld-se 无法在类路径的不同 jar 中找到 bean
问题描述
我有一个使用weld-se 的简单独立应用程序,但是我无法从类路径上的所有bean 档案中检测到bean
基本上,我在运行的目录中有一堆 jar 文件:
java -classpath * a.b.c.Generator
其中两个 jar 文件是 bean 档案,并且很好地发现了发生weld.initialize() 的 jar 中包含的 bean。
但是,来自其他 jar 文件的那些将被完全忽略。这对我来说似乎很奇怪,尽管我不知道这是否真的是它的意图。如果是这样,有什么不同的解决方案?
解决方案
就我而言,当通过上述命令行运行时,我无法让 Weld 发现我的类路径上其他 jar 中的 bean。
注册的 beanmanager 只发现带有初始化 Weld 的 jar 文件的 bean。日志记录表明这一点,注意“/jar/C:/....”的 Bean 管理器,因此仅用于一个 jar 文件。
为了解决这个问题,我合并了所有需要从中发现 bean 的 jar 文件(带有一个空的 META-INF/beans.xml),然后像上面一样运行我的应用程序。
推荐阅读
- c++ - 在 C++ 中使用模板和运算符重载执行矩阵运算
- laravel - 无法从自定义管理面板 Laravel 5.7 注销
- laravel - 生产服务器上的 Laravel 电子邮件模板
- python - pandas 将每个数据集行乘以多个向量
- android - 错误:程序类型已存在:com.google.firebase.database.DatabaseException
- fiware - docker安装后无法从管理员登录到fiware-idm
- android - 在 Android (Studio 3.2.1) 上初始化 OpenCv,目标 SDK 28
- php - 在 Curl 请求中传递 url 数组
- javascript - 使用javascript按字母顺序对段落进行排序
- algorithm - 将世界空间法线贴图转换为切线空间法线贴图