4

平台: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");
        }
    }
}

不幸的是,注入的变量 mm 在 method2() 中为空。而在 method1() 中,存在一个正确注入的 mm 变量。

这是JBOss的缺陷,还是我做错了什么?谢谢。

4

2 回答 2

1

使用 WebSphere 8.5.5.5 的我也发生了同样的事情。自注入 bean 在注入的 bean 中有 null。

解决方案是将第二种方法从 更改privatepublic

于 2015-05-13T10:08:09.817 回答
0

根据 Pete Muir 的说法,这是一个错误,但是,我们不确定它是否已修复。尝试更新版本的 JBoss(从源代码构建)将起作用。如果仍然存在问题,请创建错误报告

于 2013-02-28T17:45:59.027 回答