首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从JNDI查找获得的EntityManager已经关闭

从JNDI查找获得的EntityManager已经关闭
EN

Stack Overflow用户
提问于 2012-11-08 04:07:10
回答 2查看 837关注 0票数 0

对于(Glassfish v2.1),来自会话bean的两个单独请求的两个RuntimeExceptions:

  • "org.hibernate.SessionException:会话结束了!“

org.hibernate.SessionException:会话结束了!在org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:72) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1138) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:67) wrapped javax.persistence.PersistenceException: org.hibernate.SessionException: Session已关闭!在org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:614) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:76)

  • "java.lang.IllegalStateException: EntityManager关闭“

org.hibernate.ejb.EntityManagerImpl.close(EntityManagerImpl.java:97) com.sun.enterprise.util.QueryWrapper.clearDelegates(QueryWrapper.java:460) at com.sun.enterprise.util.QueryWrapper.getResultList(QueryWrapper.java:198)的EntityManager关闭

这两个EntityManagers都是通过JNDI查找(java:comp:/env/TargetSitePersistenceContext)使用JTA (在persistence.xml中未定义事务类型属性)获得的。& Server 2008 w/ sqljdbc4.jar

代码只做ff:

代码语言:javascript
复制
query = entityManager.createQuery();
query.getResultList();

就是这样。如果我没有弄错,我相信app容器将处理open/commit/rollback/close,所以我们不应该有任何entityManager.close()。

是什么原因导致了这两个运行时异常?

GF什么时候真正打开/关闭一个EntityManager?

在以下几个方面是否有任何区别:

  • 通过JNDI查找获得的EntityManager
  • 通过@PersistenceContext注入?(到目前为止还没有出现这种风格的问题)
EN

回答 2

Stack Overflow用户

发布于 2012-11-08 07:51:35

在所有条件相同的情况下,@PersistenceContext注入和JNDI查找应该返回相同的EntityManager。因此,它可能是GlassFish的一个bug,您可能想要找到它们。但是,请确保提供所有上下文,例如用于注入、事务处理等的会话bean类型。

票数 0
EN

Stack Overflow用户

发布于 2012-11-08 10:56:44

用注释@TransactionAttribute标记bean

代码语言:javascript
复制
@Stateless
@TransactionAttribute(TransactionAttributeType.MANDATORY)
public class Repo implements IRepo
{  

容器管理事务由此参数调节。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13282242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档