Myślę, że ten problem nasila się, ponieważ nie dostałem czegoś z EJB. Mam klasę usług dla mojej jednostki, która jest @Stateless. Kiedy używam go poprzez wstrzykiwanie @EJB w moim modelu prezentacji o zasięgu sesji, wszystko jest w porządku. Ale teraz chciałem skorzystać z tej usługi EJB w DataModel Mam nadpisane do użytku w moim modelu PrezentacjaWyjątek NullPointerException podczas wstrzykiwania EJB w Java Klasa
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;
}
}
Na wykonanie otrzymuję NullPointerException w pozycji „users = service.findAllUsers();” Te same prace, kiedy nadpisać ten DataModel w moim modelu prezentacji:
@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 ;
}
};
}
}
nie jest to możliwe do wstrzykiwania EJB w normalnej klasy Java? Co muszę zrobić, że nie muszę definiować DataModel w modelu prezentacji?
Dzięki
Spróbuj umieścić swój BeanInterface w adnotacji EJB. Mam ten sam problem kilka razy temu i to naprawiło. '@EJB (beanInterface = YourInterface.class)' – ZeusNet