【发布时间】:2011-06-27 03:14:40
【问题描述】:
我创建了一个本地 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。我做错了吗?
【问题讨论】:
-
您使用的是什么版本的 JEE 和 Glassfish? JEE5 支持依赖注入(DI),所以如果你使用的是旧版本,它就无法工作。与 Jboss 一样,DI 在 jboss-4.2.3 中不起作用,但在 jboss 5 中会很好。
标签: java jakarta-ee glassfish javabeans code-injection