NullPointerException when injecting EJB in Java Class
我认为这个问题之所以出现,是因为我没有从EJB中获得一些东西。我的实体有一个服务类,这是@Stateless。当我在会话范围的演示模型中注入@EJB来使用它时,一切都很好。但是现在我想在数据模型中使用此 EJB 服务,我已经覆盖了该数据模型,以便在我的表示模型中使用:
public class LazyUserDataModel extends LazyDataModel<User> {
@EJB
private UserService service;
@Override
public List<User> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map filters) {
List<User> users;
users= service.findAllUsers();
this.setRowCount(users.size());
return users;
}
}
在执行时,我在位置“users= service.findAllUsers();”处得到一个NullPointerException。当我在我的演示模型中覆盖此DataModel时,同样有效:
@Named
@SessionScoped
public class UserPM {
@EJB
private UserService service;
private LazyDataModel<User> lazyUsers;
public UserPM() {
// Don't works
//lazyUsers = new LazyUserDataModel();
lazyUsers = new LazyDataModel() {
@Override
public List<User> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map filters) {
List<User> users;
users = service.findAllUsers();
this.setRowCount(users .size());
return users ;
}
};
}
}
难道不可能在普通的Java类中注入EJB吗?我必须做些什么,而不必在表示模型中定义 DataModel?
谢谢