Я думаю, эта проблема возникает, потому что я не получил что-то с EJB. У меня есть класс обслуживания для моего объекта, который является @Stateless. Когда я использую его, вводя @EJB в моей модели с ограниченной областью охвата, все в порядке. Но теперь я хотел использовать эту службу EJB в DataModel, который я перезаписал для использования в моей модели презентации:
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;
}
}
При выполнении я получаю исключение NullPointerException в позиции "users = service.findAllUsers();" То же самое работает, когда я перезаписываю этот 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 ;
}
};
}
}
Невозможно ли внедрить EJB в обычный Java-класс? Что мне делать, что мне не нужно определять DataModel в модели презентации?
Спасибо