Я новичок в EJB и CDI. Пожалуйста, помогите мне понять, что я делаю неправильно здесь:EJB - NullpointerException при инъекции bean
Мой код, как показано ниже, и развернут в WAR на JBoss WildFly 8:
@Stateless(name = "application.listDao")
public class ListDao extends BaseDao {
@Inject
private SomeOtherDao someOtherDao;
// some other methods
}
@Stateless
public abstract class BaseDao {
@Inject
protected EntityManager entityManager;
public List find(long id) {
List list = new ArrayList<>();
// JPA stuff to perform operations
return list;
}
}
Теперь я инъекционного этот ListDao в других WAR развернут на такой же экземпляр wildfly:
@RequestScoped
public class ListReport {
@Inject
private ListDao listDao;
public List getReport(long id) {
// Here I am getting NullPointerException
List reportList = listDao.find(id);
return reportList;
}
}
Я получаю списокDao как null и, следовательно, получаю исключение NullPointerException. CDI разрешен путем размещения пустого beans.xml в папке WEB-INF.
Попробуйте ввести тип интерфейса вместо типа класса. смотрите здесь http://stackoverflow.com/questions/16056881/null-pointer-exception-while-ejb-injection –
Используйте '@ PersistenceContext' для инъекции' EntityManager' вместо '@ Inject'. – Everv0id
Война в том же ухе? –