в моем приложении JavaEE 6 (JBoss 6.0.0.Final) У меня есть иерархия классов, обрисованная в общих чертах следующим образом:
@Stateful public class UserFacade
{
@Inject @MyRepository
private EntityManager em;
}
@Stateful public class UserBl
{
@EJB private UserFacade fUser;
}
public class MyServlet
{
@EJB private UserBl blUser;
}
Сервлет используется во время процесса входа в систему и работает нормально.Но если сервлет вызывается из того же браузера после периода неактивности около 10 минут, EntityManager em
in UserBl
становится NULL
(проверено это перед использованием).
В другом приложении(JBoss 5.1.0.GA) Я выпустил аналогичное решение и решил его путем явной проверки на NULL
и поиска EntitiyManager
из контекста в этом случае.
Интересно,есть фундаментальный недостаток дизайна или если я что-то пропустил.В этом сценарии @Stateless
Бобы тоже возможны.Но в моем понимании это должно работать и с @Stateful
Beans.