小编典典

Java EE:如何从Web模块访问本地EJB?

java

我创建了一个本地EJB,我想从同一VM中的Web模块访问它。我的代码如下所示:

@EJB
private UserBeanLocal userBean;

public UsuarioManagedBean() {
     InitialContext c = new InitialContext();
     userBean = (UserBeanLocal) c.lookup("java:global/UsersApp/Users-ejb/UserBean!biz.users.beans.UserBeanLocal");
}

public List<User> getUsers() {
    users = this.userBean.listUsers();
    return users;
}

这很好。但是,有人告诉我,如果我正在使用本地bean,则不需要进行查找,我只需要进行如下注入:

@EJB
private UserBeanLocal userBean;

public UsuarioManagedBean() {

}

public List<User> getUsers() {
    users = this.userBean.listUsers();
    return users;
}

但是,如果我尝试这样做,则会在this.userBean上得到一个空异常。建议我的人与JBoss合作,而我正在使用glassfish。难道我做错了什么?


阅读 304

收藏
2020-11-26

共1个答案

小编典典

@EJB注释仅适用于应用程序服务器控制的类,例如servlet,mdbs和其他ejb。我猜想UsuarioManagedBean是pojo,因此是NPE,因为资源永远不会注入。

2020-11-26