@Singleton 的 @Inject 字段上的 NPE class

NPE on a @Inject field for a @Singleton class

我遇到了一个奇怪的场景,无论我尝试过什么解决方案,任何使用 CDI 管理单例的尝试都会导致失败,我现在甚至不确定这是否是什么 feasable/that 可以完成,因此我在这里发帖的原因。

我会尽力解释当前的情况,我想知道我的意图是否可以实现,如果可以,通过什么方式,如果不能,是否有其他选择 "upgrading" 那个 jar 中的单例实例。如果我遗漏了 details/parts 代码,请告诉我,因为这有点不寻常,如果我提供了所需的一切,我不会这样做。

背景:

意向:

已走步数

需要考虑的事情:

问题:

如果Managementclass是一个jar依赖(由JBoss提供或打包在ear里面)不被视为CDI bean。 它必须是一个 EJB/CDI 模块,与 testing-ejb.

打包在同一级别

另一种方法是使用@Remote EJB 注释并将 jar 部署为库,而不是简单的依赖项。

(对我而言)不清楚这种重构的目的,但如果是为了避免在每个需要它的 bean 上手动实例化 class,您可以编写一个简单的生产者:

@Singleton
public class ManagementProvider() {
    @Produces
    public Management getInstance() {
        return Management.getInstance();
    }
}

然后你可以随时使用@Inject!