2017-03-24 6 views
0

Ich erhalte diesen Fehler nach einiger Zeit inaktiv, aber wenn ich mich wieder anmelde, fängt alles gut an zu arbeiten.Die Transaktion ist erforderlich, um diese Operation nach einer inaktiven Zeit auszuführen

Es ist nicht die Sitzung, weil ich es auf 30 min und mit etwa 5 min. Im Leerlauf erhalte ich diesen Fehler.

Irgendeine Idee?

UsuariManager.java

... 
public Usuari save(Usuari usuari) { 

    if (usuari.getId() == null) { 
     this.em.persist(usuari); <----line 
     return usuari; 
    } else { 
     return this.em.merge(usuari); 
    } 
} 
... 

UsuariService.java

... 
public Usuari obtainUsuari(LdapUsuari ldapUsuari) { 

    Usuari usuari = usuariMgr.findByUsername(ldapUsuari.getUid()); 

    if (usuari == null) { 
     usuari = new Usuari(ldapUsuari.getUid(), 
          ldapUsuari.getCn(), 
          ldapUsuari.getSn(), 
          ldapUsuari.getEmployeeNumber(), 
          ldapUsuari.getTelephonenumber(), 
          ldapUsuari.getModifyTimestampDate(), 
          ldapUsuari.getRols()); 
     usuariMgr.save(usuari);      <----- 
    } else if(usuari.getActualitzacio() 
       .before(ldapUsuari.getModifyTimestampDate())){ 
     usuari.setUsername(ldapUsuari.getUid()); 
     usuari.setNom(ldapUsuari.getCn()); 
     usuari.setLlinatges(ldapUsuari.getSn()); 
     usuari.setDni(ldapUsuari.getEmployeeNumber()); 
     usuari.setEmail(ldapUsuari.getMail()); 
     usuari.setActualitzacio(ldapUsuari.getModifyTimestampDate()); 
     usuari.setRols(ldapUsuari.getRols()); 
     usuariMgr.save(usuari); 
     logger.info("--------------Informació desactualitzada d'usuari"); 
    } 

    return usuari; 
} 
... 

persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> 
    <persistence-unit name="gestresiPU" transaction-type="JTA"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <jta-data-source>java:/MySqlDS</jta-data-source> 
... 

Fehler

13:19:42,143 ERROR [io.undertow.request] (default task-35) UT005023: Exception handling request to /gestresi-web/index.xhtml: javax.servlet.ServletException: WFLYJPA0060: Transaction is required to perform this operation (either use a transaction or extended persistence context) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:671) 
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) 
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) 
    at es.imas.gestresi.business.security.boundary.Authenticator.doFilter(Authenticator.java:55) 
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) 
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) 
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) 
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) 
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) 
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) 
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) 
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) 
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292) 
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81) 
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138) 
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) 
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) 
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) 
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272) 
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) 
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104) 
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) 
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: javax.ejb.EJBTransactionRolledbackException: WFLYJPA0060: Transaction is required to perform this operation (either use a transaction or extended persistence context) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(Reflections.java:433) 
    at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:128) 
    at org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:56) 
    at org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(InjectionPointPropagatingEnterpriseTargetBeanInstance.java:67) 
    at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:100) 
    at es.imas.gestresi.business.pia.boundary.UsuariManager$Proxy$_$$_Weld$EnterpriseProxy$.save(Unknown Source) 
    at es.imas.gestresi.business.pia.boundary.UsuariService.obtainUsuari(UsuariService.java:41) 
    ... 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(Reflections.java:433) 
    at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:128) 
    at org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:56) 
    at org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(InjectionPointPropagatingEnterpriseTargetBeanInstance.java:67) 
    at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:100) 
    at es.imas.gestresi.business.pia.boundary.UsuariService$Proxy$_$$_Weld$EnterpriseProxy$.obtainUsuari(Unknown Source) 
    at es.imas.gestresi.business.security.boundary.UserProvider.fetch(UserProvider.java:27) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    ... 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(Reflections.java:433) 
    at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:128) 
    at org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:56) 
    at org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(InjectionPointPropagatingEnterpriseTargetBeanInstance.java:67) 
    at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:100) 
    at es.imas.gestresi.business.security.boundary.UserProvider$Proxy$_$$_Weld$EnterpriseProxy$.fetch(Unknown Source) 
    at es.imas.gestresi.presentation.ApplicationBean.loadUsuari(ApplicationBean.java:95) 
    at es.imas.gestresi.presentation.ApplicationBean.getUsuari(ApplicationBean.java:135) 
    ... more 
Caused by: javax.persistence.TransactionRequiredException: WFLYJPA0060: Transaction is required to perform this operation (either use a transaction or extended persistence context) 
    at org.jboss.as.jpa.container.AbstractEntityManager.transactionIsRequired(AbstractEntityManager.java:877) 
    at org.jboss.as.jpa.container.AbstractEntityManager.persist(AbstractEntityManager.java:579) 
    at es.imas.gestresi.business.pia.boundary.UsuariManager.save(UsuariManager.java:49) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 

    ... more 

Antwort

0

Diese Frage gestellt wurde previously.See ähnliche Frage und Antwort
Link

Verwandte Themen