平台:JBoss AS 7.1.1。
我有一个无状态bean方法需要调用同一个bean的另一个方法但必须通过EJB容器。
@Stateless
public class OrderManager {
@Resource
SessionContext ctx;
@Inject
MailUtil mm;
Logger logger = Logger.getLogger("Test");
public void method1() {
if (mm == null) {
logger.info("MailUtil is null");
}
ctx.getBusinessObject(OrderManager.class).method2();
}
@Asynchronous
public void method2() {
if (mm == null) {
logger.info("MailUtil is null");
}
}
}
不幸的是,在method2()中注入的变量mm为null。而在method1()中,存在正确注入的mm变量。
这是JBOss中的缺陷,还是我做错了什么?感谢。
答案 0 :(得分:1)
使用WebSphere 8.5.5.5发生了同样的事情。自注入bean在注入的 bean中为空。
解决方案是将第二种方法从private
更改为public
。
答案 1 :(得分:0)
根据Pete Muir的说法,这是一个错误,但是,我们不确定它是否已修复。尝试更新版本的JBoss(从源代码构建)将起作用。如果仍有问题,请创建bug report。