我有一個簡單的Web應用程序JPA2(OpenJPA2)。OpenJPA2回滾在服務器啓動幾天後'創建實體'事務
我啓動服務器(在VPS的Ubuntu服務器12.04上的TomEE + 1.7.4)。該應用程序開始工作,並提供服務。運行幾天後,在某個實體的CRUD視圖中,當嘗試創建實體實例時,Persistence引擎將回滾事務以創建實體實例。瀏覽器客戶端中會顯示一個異常報告。
javax.ejb.EJBTransactionRolledbackException:事務回滾,大概是因爲使用setRollbackOnly是一個同步過程中調用
試了很多東西,也不想在這裏騷擾你們,但我真的穿上」不知道該怎麼做!
如果我關閉TomEE並將其重新啓動。消除問題和EntityManager完美地創建和存儲實體。
數據庫引擎是MySQL。項目使用Maven。大多數依賴是'提供'的。
以下是參與文件: 持久性配置:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="AEEA-PU" transaction-type="JTA">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<jta-data-source>AEEA-JNDI2</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<shared-cache-mode>ALL</shared-cache-mode>
<properties>
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
<property name="openjpa.jdbc.DBDictionary" value="org.apache.openjpa.jdbc.sql.MySQLDictionary"/>
</properties>
</persistence-unit>
</persistence>
實體類:(省略getter和setter)
@Entity
public class Ubicacion implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String descripcion;
private String salon;
private String horarios;
private String domicilio;
private String ciudad;
private String telefonos;
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date fechaHoraAlta;
private String comentarios;
@OneToOne(fetch = FetchType.EAGER)
private Usuario usuarioAlta;
private String urlMaps;
抽象的門面:
import java.util.List; import javax.persistence.EntityManager;
public abstract class AbstractFacade<T> {
private Class<T> entityClass;
public AbstractFacade(Class<T> entityClass) {
this.entityClass = entityClass;
}
protected abstract EntityManager getEntityManager();
public void create(T entity) {
getEntityManager().persist(entity);
} //...
混凝土外觀:
@Stateless
public class UbicacionFacade extends AbstractFacade<Ubicacion> {
@PersistenceContext(unitName = "AEEA-PU")
private EntityManager em;
@Override
protected EntityManager getEntityManager() {
return em;
}
和最後的管理,其方法
公共字符串ubicacionNueva()
豆,即從primefaces p叫:的commandButton創建實體,並將其存儲。該方法使用託管bean中的臨時實體,設置諸如已登錄用戶和創建日期等一些屬性,並調用Facade以在數據庫中存儲實體。
@ManagedBean
@SessionScoped
public class UbicacionesBacking{
@EJB
private UbicacionFacade ubicacionFacade;
private Ubicacion tmpUbi;
public UbicacionesBacking() {
}
public String ubicacionNueva() {
FacesContext context = FacesContext.getCurrentInstance();
LoginBacking bean = context.getApplication().evaluateExpressionGet(context, "#{loginBacking}", LoginBacking.class);
this.tmpUbi.setUsuarioAlta(bean.getCurrentUser());
this.tmpUbi.setFechaHoraAlta(new Date());
ubicacionFacade.create(this.tmpUbi);
this.tmpUbi = new Ubicacion();
return "ubicacionLista";
}
以下爲異常報告
埃斯塔HTTP 500 - javax.el.ELException: javax.ejb.EJBTransactionRolledbackException:一個 同步期間事務回滾 回來,大概是因爲使用setRollbackOnly被稱爲
型Informe德Excepción
mensaje javax.el.ELE xception: javax.ejb。EJBTransactionRolledbackException:事務回滾 回來,大概是因爲使用setRollbackOnly是 同步
descripción薩爾瓦多servidorencontró未錯誤INTERNO闕闕HIZO期間調用沒有 pudiera rellenar埃斯特requerimiento。
excepción
javax.servlet.ServletException:javax.el.ELException: javax.ejb.EJBTransactionRolledbackException:事務回滾 回來,大概是因爲使用setRollbackOnly是 同步 javax.faces.webapp期間調用。 FacesServlet.service(FacesServlet.java:230) org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:100)
CAUSAraíz
org.apache.myfaces.view.facelets.el.ContextAwareELException: javax.el.ELException:javax.ejb.EJBTransactionRolledbackException: 事務回滾,這可能是因爲使用setRollbackOnly是 同步 org.apache.myfaces期間調用。 view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:108) org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74) javax.faces.component.UICommand.broadcast(UICommand.java: 120) javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1172) javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:365) javax.faces.component.UIViewRoot._process(UIViewRoo t.java:1658) javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:862) org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:42) org.apache.myfaces.lifecycle .LifecycleImpl.executePhase(LifecycleImpl.java:196) org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143) javax.faces.webapp.FacesServlet.service(FacesServlet.java:198) 有機primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:100)
CAUSAraíz
javax.el.ELException:javax.ejb.EJBTransactionRolledbackExcept離子: 事務被回滾,大概是因爲使用setRollbackOnly是 同步 org.apache.el.parser.AstValue.invoke(AstValue.java:292) org.apache.el.MethodExpressionImpl.invoke期間調用(MethodExpressionImpl.java :273) org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96) org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74) javax.faces。 component.UICommand.broadcast(UICommand.java:120) javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1172) javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:365) javax.faces .component.UIViewR oot._process(UIViewRoot.java:1658) javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:862) org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:42) org.apache .myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196) org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143) javax.faces.webapp。FacesServlet.service(FacesServlet.java:198) org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:100)
遺贈raíz
javax.ejb.EJBTransactionRolledbackException:事務回滾 回,大概是因爲使用setRollbackOnly被一個 同步 org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:400)期間調用 org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java: 329) fachadas.UbicacionFacade $$ LocalBeanProxy.agregarUbicacion(fachadas/UbicacionFacade.java) porotosAdministrados.UbicacionesBacking.ubicacionNueva(UbicacionesBacking.java:38) sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:43) java.lang.reflect.Method.invoke(Method.java:622) org.apache.el.parser.AstValue.invoke(AstValue.java:279) org.apache.el.MethodExpressionImpl。 invoke(MethodExpressionImpl.java:273) org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96) org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74) javax.faces.component.UICommand.broadcast(UICommand.java:120) javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1172) javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:365 ) javax.faces.component.UIViewRoot._process(UIViewRoot.java:1658) javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:862) org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor。 java:42) org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196) org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143) javax.faces.webapp.FacesServlet .service(FacesServlet.java:198) org.primefaces.webapp.filter.FileU ploadFilter.doFilter(FileUploadFilter.java:100)
遺贈raíz
javax.transaction.RollbackException:無法承諾:標記爲回滾 org.apache.geronimo.transaction.manager.TransactionImpl.commit交易 ( TransactionImpl.java:272) org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252) org.apache.openejb.core.transaction.JtaTransactionPolicy.completeTransaction(JtaTransactionPolicy.java:375) 組織.apache.openejb.core.transaction.TxRequired.commit(TxRequired.java:76) org.apache.openejb.core.transaction.Ej (無狀態容器.java:無狀態容器。 194) org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:317) org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:312) org.apache.openejb .core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:92) org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:325) fachadas.UbicacionFacade $$ LocalBeanProxy.agregarUbicacion(fachadas/UbicacionFacade。 java) porotosAdministrados。UbicacionesBacking.ubicacionNueva(UbicacionesBacking.java:38) sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43) java.lang.reflect.Method.invoke(Method.java:622) org.apache.el.parser.AstValue.invoke(AstValue.java:279) org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl的.java:273) org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96) org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74) 的javax。 faces.component.UICommand .broadcast(UICommand.java:120) javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1172) javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:365) javax.faces.component。 UIViewRoot._process(UIViewRoot.java:1658) javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:862) org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:42) org.apache .myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196) org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143) javax.faces.webapp.FacesServlet.service(FacesServlet.java:198) ) org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:100 )
CAUSAraíz
org.apache.geronimo.transaction.manager.SetRollbackOnlyException: 使用setRollbackOnly()調用。見堆棧跟蹤原產 org.apache.geronimo.transaction.manager.TransactionImpl.setRollbackOnly(TransactionImpl.java:126) org.apache.geronimo.transaction.manager.TransactionManagerImpl.setRollbackOnly(TransactionManagerImpl.java:243) org.apache .openejb.core.TransactionSynchronizationRegistryWrapper.setRollbackOnly(TransactionSynchronizationRegistryWrapper.java:72) org.apache.openjpa.ee.RegistryManagedRuntime $ TransactionManagerRegistryFacade.setRollbackOnly(RegistryManagedRuntime.java:128) org.apache.openjpa.ee.RegistryManagedRuntime.setRollbackOnly(RegistryManagedRuntime .java:74) org.apache.openjpa.ee.AutomaticManagedRuntime.setRollbackOnly(AutomaticManagedRuntime.java:274) org.apache.openjpa.kernel.BrokerImpl.setRollbackOnlyInternal(BrokerImpl.java:1672) org.apache.openjpa.kernel.BrokerImpl.setRollbackOnly(BrokerImpl.java:1652) org.apache.openjpa.kernel.DelegatingBroker.setRollbackOnly(DelegatingBroker.java:980) org.apache.openjpa.persistence.EntityManagerImpl.setRollbackOnly (EntityManagerImpl.java:630) org.apache.openjpa.persistence.PersistenceExceptions $ 2.translate(PersistenceExceptions.java:75) org.apache.openjpa.kernel.BrokerImpl.translateManagedCompletionException(BrokerImpl.java:2091) org.apache org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:527) org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion (TransactionImpl.java:512) org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:413) org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:262) org.apache.geronimo.transaction .manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:252) org.apache.openejb.core.transaction.JtaTransactionPolicy.completeTransaction(JtaTransactionPolicy.java:375) org.apache.openejb.core.transaction.TxRequired.commit(TxRequired 。的java:76) org.apache.openejb.core.transaction.EjbTransactionUtil.afterInvoke(EjbTransactionUtil.java:77) org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:246) org.apache org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:317) org.apache.openejb.core.ivm.EjbObjectProxyHandler .businessMethod(EjbObjectProxyHandler.java:312) org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:92) org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:325 ) fachadas.UbicacionFacade $$ LocalBeanProxy.agregarUbicacion(fachadas/Ubicac ionFacade.java) porotosAdministrados.UbicacionesBacking.ubicacionNueva(UbicacionesBacking.java:38) sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:622) org.apache.el.parser.AstValue.invoke(AstValue.java:279) org.apache。 el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273) org.apache.myfaces.view.facelets.el.ContextAwareTagMethodExpression.invoke(ContextAwareTagMethodExpression.java:96) org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl。 JAV一:74) javax.faces.component.UICommand.broadcast(UICommand.java:120) javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:1172) javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot .java:365) javax.faces.component.UIViewRoot._process(UIViewRoot.java:1658) javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:862) org.apache.myfaces.lifecycle.InvokeApplicationExecutor。執行(InvokeApplicationExecutor.java:42) org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196) org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143) javax.faces .webapp.FacesServlet.service(FacesServlet.java:198) org.primef aces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:100)
不是去拉traza completa德拉遺贈德埃斯特錯誤本身encuentra連接洛杉磯 archivos德日報的Apache Tomcat(TomEE)/7.0.68(1.7 。4)。