Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java EntityManager在一段时间后变为空(约10m)_Java_Jpa_Jakarta Ee_Ejb 3.0_Jpa 2.0 - Fatal编程技术网

Java EntityManager在一段时间后变为空(约10m)

Java EntityManager在一段时间后变为空(约10m),java,jpa,jakarta-ee,ejb-3.0,jpa-2.0,Java,Jpa,Jakarta Ee,Ejb 3.0,Jpa 2.0,在我的JavaEE6应用程序(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 User

在我的JavaEE6应用程序(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;
}
servlet在登录过程中使用,工作正常。但是,如果在大约10分钟的非活动期后从同一浏览器调用servlet,则
UserBl
中的
EntityManager em
将变为
NULL
(在使用它之前明确检查)

在另一个应用程序(JBoss 5.1.0.GA)中,我发布了一个类似的问题,并通过显式检查
NULL
并从上下文中查找
EntityManager
解决了这个问题


我想知道是否有一个基本的设计缺陷,或如果我错过了什么。在这个场景中,也可以使用无状态的bean。但据我所知,这也适用于
@Stateful
bean。

据我回忆,有状态bean的注入是有问题的(至少在JavaEE 5中是这样)。这可能是钝化激活问题


但是您在这里并不真正需要有状态bean,
EntityManager
是每个事务(默认情况下,您可以将其设置为extended,从而允许它跨越多个请求),无状态bean是正确的方法。

据我回忆,有状态bean的注入是有问题的(至少在JavaEE 5中是这样)。这可能是钝化激活问题

但是这里并不真正需要有状态bean,
EntityManager
是每个事务(默认情况下,您可以将其设置为extended,从而允许它跨越多个请求),而无状态bean是正确的方法