【发布时间】:2011-04-02 06:29:53
【问题描述】:
GlassFish 3.1 的托管 bean 的 CDI 实现是否支持构造函数注入?我有一个@Singleton EJB,我想使用构造函数注入向其中注入另一个托管 bean(包含在同一个 EJB 模块中)。现场注入确实有效。但是通过构造函数注入,我从AbstractSingletonContainer 得到一个NullPointerException。
这确实有效:
@Singleton
public class FooBean implements Foo {
@Inject private BarBean bar;
}
这不起作用:
@Singleton
public class FooBean implements Foo {
private final BarBean bar;
@Inject
public FooBean(BarBean bar) {
this.bar = bar;
}
}
【问题讨论】:
-
什么版本的 glassfish?如果这不是 3.0.1,请尝试一下。
-
我想明白了。该示例实际上正在运行。只有当 glassfish 启动时耳朵已经展开时,它才会崩溃。重新部署后就可以工作了。对我来说似乎是一个 GlassFish 错误。
标签: dependency-injection glassfish java-ee-6 cdi constructor-injection