Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.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 JPA异常事务仍处于活动状态_Java_Google App Engine_Jpa_Transactions - Fatal编程技术网

Java JPA异常事务仍处于活动状态

Java JPA异常事务仍处于活动状态,java,google-app-engine,jpa,transactions,Java,Google App Engine,Jpa,Transactions,我正在使用appengine后端开发一个android应用程序。在我的一个端点方法中,我查询数据存储以检索实体,如下所示: try { mgr.getTransaction().begin(); bookList = (List<Book>) q.getResultList(); mgr.getTransaction().commit(); } catch (Exception e) {

我正在使用appengine后端开发一个android应用程序。在我的一个端点方法中,我查询数据存储以检索实体,如下所示:

try {
            mgr.getTransaction().begin();
            bookList = (List<Book>) q.getResultList();
            mgr.getTransaction().commit();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
        mgr.close();
    }

为什么会出现此异常?

您确定在同一请求期间,没有启动另一个事务,但在该事务之前执行的其他代码段中没有提交或回滚该事务吗?是否引发了可丢弃的而不是异常?费心查看抛出的任何异常吗?还是日志?@DavidLevesque我写代码时有点小错误。我已经编辑了代码,但仍然有错误。@pratim你没有回答我的问题。。。另外,我认为使用
回滚
,代码会更好,不知道为什么要删除它。在
finally
块中,您可以将代码更改为:
if(!mgr.isActive())mgr.close但这并不能解决您的问题,因为您有一个打开的事务,尚未提交或回滚。请将
实体管理器
初始化和设置添加到帖子中。
com.google.api.server.spi.SystemService invokeServiceMethod: Transaction is still active. You     should always close your transactions correctly using commit() or rollback().
javax.persistence.PersistenceException: Transaction is still active. You should always close your transactions correctly using commit() or rollback().
at org.datanucleus.jpa.NucleusJPAHelper.getJPAExceptionForJDOException(NucleusJPAHelper.java:195)
at org.datanucleus.jpa.EntityManagerImpl.close(EntityManagerImpl.java:157)
at org.datanucleus.store.appengine.jpa.DatastoreEntityManager.close(DatastoreEntityManager.java:62)
at com.example.bookemon.BookEndpoint.searchBook(BookEndpoint.java:414)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:45)
at com.google.api.server.spi.SystemService.invokeServiceMethod(SystemService.java:359)
at com.google.api.server.spi.SystemServiceServlet.execute(SystemServiceServlet.java:124)
at com.google.api.server.spi.SystemServiceServlet.doPost(SystemServiceServlet.java:82)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:438)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:445)
at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:220)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:309)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:301)

at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:442)
at java.lang.Thread.run(Thread.java:724)
Caused by: javax.jdo.JDOUserException: Transaction is still active. You should always close your transactions correctly using commit() or rollback().
FailedObject:org.datanucleus.jdo.JDOPersistenceManager@859b59
at org.datanucleus.jdo.JDOPersistenceManager.close(JDOPersistenceManager.java:277)
at org.datanucleus.jpa.EntityManagerImpl.close(EntityManagerImpl.java:153)
... 34 more