0

在准备添加自定义 CDI 范围时,我添加了一个实现 CDI spi 扩展接口的类。该类中没有代码:

public class TaskScopedExtension implements Extension, Serializable {
}

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

任何帮助表示赞赏。

4

1 回答 1

1

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

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

于 2017-11-22T08:14:05.823 回答