JPA Неожиданное исключение в beforeCompletion в Weblogic 12c - PullRequest
1 голос
/ 25 апреля 2019

Во время простой транзакции, управляемой JPA, я выбираю объект A из базы данных, используя именованный запрос, и после нескольких обновлений в его состоянии я снова объединяю объект A.Результатом слияния является правильный объединенный экземпляр сущности, но при фиксации метода у меня возникает следующее исключение:

weblogic.transaction.RollbackException: непредвиденное исключение в beforeCompletion: sync = org.eclipse.persistence.transaction.JTASynchronizationListener @ 76d1f39e PersistenceUtil.getIdentifier (entity) был вызван с объектом [... EntityA @ 6d5f707], который не является постоянным объектом.по адресу weblogic.transaction.internal.TransactionImpl.throwRollbackException (TransactionImpl.java:2122) по адресу) по адресу__WL_postInvokeTxRetry (BaseWSLocalObject.java:157) по адресу weblogic.ejb.container.internal.WSOMethodInvoker.invoke (WSOMethodInvoker.java:40) в test.service.PreferencesDSService_y4ihwl) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) вjava.lang.reflect.Method.invoke (Method.java:498) в weblogic.wsee.server.ejb.WsEjb.invoke (WsEjb.java:55) в weblogic.wsee.jaxws.WLSEjbInstanceResolver $ WLSEjbInv.okerJava: 196) на weblogic.wsee.jaxws.WLSInstanceResolver $ WLSInvoker.invoke (WLSInstanceResolver.java:93) на com.sun.xml.ws.server.InvokerTube $ 2.invoke (InvokerTube.java:149) на com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest (SEIInvokerTube.java:88) в weblogic.wsee.jaxws.security.AuthorizationTube $ RunAsWrapperTube $ 1.run (AuthorizationTube.java:293) в weblogic.wsee.jaxws.security.Ahorization$ RunAsWrapperTube $ 1.run (AuthorizationTube.java:291) в java.security.AccessController.doPrivileged (собственный метод) в javax.security.auth.Subject.doAs (Subject.java:360) в weblogic.wsee.jaxws.security.AuthorizationTube $ RunAsWrapperTube.processRequest (AuthorizationTube.java:290) по адресу com.sun.xml.ws.api.pipe.Fiber .__ doRun (Fiber.java:1136) по адресу com.sun.xml.ws.api.pipe.Fiber._doRun (Fiber.java:1050) на com.sun.xml.ws.api.pipe.Fiber.doRun (Fiber.java:1019) на com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:877) на com.sun.xml.ws.server.WSEndpointImpl $ 2.process (WSEndpointImpl.java:419) на com.sun.xml.ws.transport.http.HttpAdapter $ HttpToolkit.handle (HttpAdapter.java:868) на com.sun.xml.ws.transport.http.HttpAdapter.handle (HttpAdapter.java:422) на com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle (ServletAdapter.java:169) на weblogic.wsee.jaxws.WLSServletAdapter.handle (Java: 246) на weblogic.wsee.jaxws.HttpServletAdapter $ AuthorizedInvoke.run (HttpServletAdapter.java:667) на weblogic.security.acl.internal.AuthenticatedSubject.doAs (AuthenticatedSubject.java:gic.Security.jerSecurity.Service)..runAs (SecurityManager.java:163) по адресу weblogic.wsee.util.ServerSecurityHelper.authenticatedInvoke (ServerSecurityHelper.java:108) по адресу weblogic.wsee.jaxws.HttpServletAdapter $ 3.run (HttpServlow.jpg) .6).HttpServletAdapter.post (HttpServletAdapter.jAVA: 295)по адресу weblogic.wsee.jaxws.JAXWSServlet.doRequest (JAXWSServlet.java:128) по адресу weblogic.servlet.http.AbstractAsyncServlet.service (AbstractAsyncServlet.java:103) по адресу javax.servlet.htter.plet.plet.ptw.pv.StubSecurityHelper.java:137) в weblogic.servlet.internal.ServletStubImpl.execute (ServletStubImpl.java:350) в weblogic.servlet.internal.TailFilter.doFilter (TailFilter.jternal:25) в weblogic.Filter.Filter.(FilterChainImpl.java:78) в oracle.security.jps.ee.http.JpsAbsFilter $ 3.run (JpsAbsFilter.java:172) в java.security.AccessController.doPrivileged (собственный метод) в oracle.security.jps.util.JpsSubject.doAsPrivileged (JpsSubject.java:315) в oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode (JpsPlatformUtil.java:650) в oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode (JpsAbsFilter.java:110) в oracle.security.jps.ee.http.JpsAbsFilter.doFiljFFв oracle.security.jps.ee.http.JpsAbsFilter.doFilter (JpsAbsFilter.java:147) в oracle.security.jps.ee.http.JpsFilter.doFilter (JpsFilter.java:94) в weblogic.servlet.internal.FlterC.doFilter (FilterChainImpl.java:78) в oracle.dms.servlet.DMSServletFilter.doFilter (DMSServletFilter.java:248) в weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImplet.loternal.loternal.loternal) .78 :78WebAppServletContext $ ServletInvocationAction.wrapRun (WebAppServletContext.java:3706) по адресу weblogic.servlet.internal.WebAppServletContext $ ServletInvocationAction.run (WebAppServletContext.javaject.hejectShejectSecheedSecateShejectSecheedSecateShejectSecateShejectSecate_Sense_Exject.Sext)в weblogic.security.service.SecurityManager.runAsForUserCode (SecurityManager.java:197) в weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode (WlsSecurityProvider.java:203) по адресу weblogic.servlet.provider.WlsSubjectHandle.run (WlsSubjectHandle.java:71) по адресу weblogic.servlet.internal.WebAppSerava веб-интерфейс (веб-интерфейс).internal.WebAppServletContext.securedExecute (WebAppServletContext.java:2291) на веб-сайтеservlet.internal.ServletRequestImpl.run (ServletRequestImpl.java:1665) в weblogic.servlet.provider.ContainerSupportProviderImpl.invocation.ComponentInvocationContextManager.runAs (ComponentInvocationContextManager.java:337) в weblogic.work.LivePartitionUtility.doRunWorkUnderContext (LivePartitionUtility.java:57) по адресу weblogic.work.PartitionUtility.runWorkUnderContext (PartitionUtility.java:41) по адресу weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext (SelfTuningWorkManagerImpworkThextelo.tj.tune.jt): 420) at weblogic.work.ExecuteThread.run (ExecuteThread.java:360)

Как управляемый объект не может быть постоянным объектом?Файл persistence.xml содержит сущность, именованный запрос для этой сущности выполнен правильно, а объединение также выполнено правильно.

Я использую сервер Weblogic 12.2.1.3.0.Eclipselink для движка JPA и JEE7 с Java 8. Странно то, что если я обновлю развертывание в weblogic, даже не предоставив новое ухо, проблема будет решена.

Любая подсказка будет очень полезной.

...