1

使用 GlassFish 3.1.2,我尝试从 Netbeans 平台模块调用会话 Bean,但出现空指针异常。我的问题是我没有任何痕迹来解释 NPE 的生成方式/位置。

我的模块中的代码很简单:

import ejb.MySessionRemote;
import javax.ejb.EJB;

public class TestServer {

    @EJB
    private static MySessionRemote mySession;

    public boolean execute() {
        System.out.println("result = " + mySession.getString()); //NPE here: mySession is null
        return true;
    }
}

会话 bean“我的会话”、远程接口和部署在服务器端的应用程序只是本教程中的内容:https ://netbeans.org/kb/docs/javaee/entappclient.html

非常感谢任何帮助。

注意:我已经检查了本教程,但没有解决我的问题。

4

1 回答 1

3

如果mySession为空,则可能未注入。您可以注入托管bean(例如 EJB),因为这些实例由容器管理(创建/删除) ,并且容器为您进行注入。

如果您使用CDI,您可以注入 POJO 。

例如,如果TestServer是独立应用程序的一部分,请尝试使用JNDI查找 EJB 。这也是您的教程所做的。它涉及设置属性以获取InitialContext,以及使用 JNDI 查找 EJB。

于 2013-08-08T14:52:43.487 回答