CDI 扩展 class 使 Wildfly 容器 bean 发现失败

CDI Extension class makes Wildfly container bean discovery fail

为了准备添加自定义 CDI 作用域,我添加了一个 class 来实现 CDI spi 扩展接口。 class 中没有代码:

public class TaskScopedExtension implements Extension, Serializable {
}

仅在部署中包含 class 会导致所有其他 CDI bean 发现失败。我没有添加任何其他代码或文件。显然 Wildfly 扫描部署以寻找扩展,但我不明白为什么只包含 class 会导致其余注入失败。我在 Java EE 或 Weld 文档中找不到任何有用的信息。我已经尝试在 bean 发现事件之前和之后添加 Observables,并且我已经尝试将 javax.enterprise.inject.spi.Extension 文件添加到部署中。这些似乎都没有什么不同。

感谢任何帮助。

我想您 运行 是规范中一个非常特殊的部分。也许是为了向后兼容而保留的剩余部分。它是第 12.1 Bean Archives 节 - “包含扩展名且没有 beans.xml 文件的存档不是 bean 存档。

添加 beans.xml 所需的发现模式(甚至是空模式),您应该可以再次运行它。