我有一个简单的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)。