在准备添加自定义CDI范围时,我添加了一个实现CDI spi扩展接口的类。该类没有代码:
public class TaskScopedExtension implements Extension, Serializable {
}
在部署中简单地包含该类会导致所有其他CDI bean发现失败。我没有添加任何其他代码或文件。显然Wildfly会扫描部署以寻找扩展,但我无法弄清楚为什么只包括该类会导致其余的注入失败。我还没有在Java EE或Weld文档中找到任何有用的东西。我尝试在bean发现事件之前和之后添加Observables,我尝试将javax.enterprise.inject.spi.Extension文件添加到部署中。这些似乎都没有区别。
感谢任何帮助。
答案 0 :(得分:1)
我想你正在遇到规范中一个非常特殊的部分。也许是为了向后兼容而保留的剩余物。它是12.1 Bean Archives部分 - “包含扩展名的存档,没有beans.xml文件不是bean存档。”
使用所需的发现模式(甚至是空的模式)添加beans.xml
,您应该再次使用它。