Use of @Transactional Demoiselle

Asked

Viewed 575 times

4

I’m having trouble using the note @Transactional Demoiselle. When I was managing the transaction "in hand" with a EntityManager injected, everything was fine. But now using the @Transactional, the record is entered in the database, but I get the following exception in Jboss log:

        16:13:37,775 ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate] (http-/0.0.0.0:8080-1) HHH000284: Error closing connection: java.sql.SQLException: You cannot set autocommit during a managed transaction!
            at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.setJdbcAutoCommit(BaseWrapperManagedConnection.java:971)
            at org.jboss.jca.adapters.jdbc.WrappedConnection.setAutoCommit(WrappedConnection.java:716)
            at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.release(SuppliedConnectionProviderConnectionHelper.java:73) [hibernate-core-4.2.14.SP1-redhat-1.jar:4.2.14.SP1-redhat-1]
            at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:255) [hibernate-core-4.2.14.SP1-redhat-1.jar:4.2.14.SP1-redhat-1]
            at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:178) [hibernate-core-4.2.14.SP1-redhat-1.jar:4.2.14.SP1-redhat-1]
            at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:509) [hibernate-core-4.2.14.SP1-redhat-1.jar:4.2.14.SP1-redhat-1]
            at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1797) [hibernate-core-4.2.14.SP1-redhat-1.jar:4.2.14.SP1-redhat-1]
            at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:96) [hibernate-entitymanager-4.2.14.SP1-redhat-1.jar:4.2.14.SP1-redhat-1]
            at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914) [hibernate-entitymanager-4.2.14.SP1-redhat-1.jar:4.2.14.SP1-redhat-1]
            at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:899) [hibernate-entitymanager-4.2.14.SP1-redhat-1.jar:4.2.14.SP1-redhat-1]
            at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:59) [hibernate-entitymanager-4.2.14.SP1-redhat-1.jar:4.2.14.SP1-redhat-1]
            at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63) [hibernate-jpa-2.0-api-1.0.1.Final-redhat-2.jar:1.0.1.Final-redhat-2]
            at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47) [hibernate-jpa-2.0-api-1.0.1.Final-redhat-2.jar:1.0.1.Final-redhat-2]
            at br.gov.frameworkdemoiselle.internal.producer.EntityManagerFactoryProducer.create(EntityManagerFactoryProducer.java:123) [demoiselle-jpa-2.4.2.jar:]
            at br.gov.frameworkdemoiselle.internal.producer.EntityManagerFactoryProducer.loadPersistenceUnits(EntityManagerFactoryProducer.java:167) [demoiselle-jpa-2.4.2.jar:]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_51]
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_51]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_51]
            at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
            at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:267) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:137) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:263) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.introspector.jlr.WeldMethodImpl.invoke(WeldMethodImpl.java:168) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.bean.AbstractClassBean.defaultPostConstruct(AbstractClassBean.java:403) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget.postConstruct(ManagedBean.java:178) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:298) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:103) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:90) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at br.gov.frameworkdemoiselle.internal.producer.EntityManagerFactoryProducer$Proxy$_$$_WeldClientProxy.getCache(EntityManagerFactoryProducer$Proxy$_$$_WeldClientProxy.java) [demoiselle-jpa-2.4.2.jar:]
            at br.gov.frameworkdemoiselle.internal.producer.Persistences.getFromXML(Persistences.java:90) [demoiselle-jpa-2.4.2.jar:]
            at br.gov.frameworkdemoiselle.internal.producer.EntityManagerProducer.createDefault(EntityManagerProducer.java:92) [demoiselle-jpa-2.4.2.jar:]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_51]
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_51]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_51]
            at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
            at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:267) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:137) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:263) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:164) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstance(MethodInjectionPoint.java:137) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.bean.ProducerMethod$ProducerMethodProducer.produce(ProducerMethod.java:136) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.bean.AbstractProducerBean$AbstractProducer.produce(AbstractProducerBean.java:319) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.bean.AbstractProducerBean.create(AbstractProducerBean.java:307) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:68) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:626) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:692) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:707) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at br.gov.frameworkdemoiselle.util.Beans.getReference(Beans.java:175) [demoiselle-core-2.4.2.jar:]
            at br.gov.frameworkdemoiselle.util.Beans.getReference(Beans.java:128) [demoiselle-core-2.4.2.jar:]
            at br.gov.serpro.sislv.persistence.SislvJPACrud.getEntityManager(SislvJPACrud.java:56) [classes:]
            at br.gov.serpro.sislv.persistence.SislvJPACrud.insert(SislvJPACrud.java:218) [classes:]
            at br.gov.serpro.sislv.ws.laudos.OperacaoRegistrarLaudo.registrarLaudo(OperacaoRegistrarLaudo.java:33) [classes:]
            at br.gov.serpro.sislv.ws.laudos.OperacaoRegistrarLaudo$Proxy$_$$_WeldSubclass.registrarLaudo(OperacaoRegistrarLaudo$Proxy$_$$_WeldSubclass.java) [classes:]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_51]
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_51]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_51]
            at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
            at org.jboss.weld.interceptor.proxy.SimpleInterceptionChain.invokeNextInterceptor(SimpleInterceptionChain.java:85) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.interceptor.proxy.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:127) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at br.gov.frameworkdemoiselle.transaction.TransactionalInterceptor.manage(TransactionalInterceptor.java:119) [demoiselle-core-2.4.2.jar:]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_51]
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_51]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_51]
            at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
            at org.jboss.weld.interceptor.proxy.SimpleMethodInvocation.invoke(SimpleMethodInvocation.java:30) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.interceptor.proxy.SimpleInterceptionChain.invokeNextInterceptor(SimpleInterceptionChain.java:69) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeInterception(InterceptorMethodHandler.java:112) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.invoke(InterceptorMethodHandler.java:88) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:55) [weld-core-1.1.23.Final-redhat-1.jar:1.1.23.Final-redhat-1]
            at br.gov.serpro.sislv.ws.laudos.OperacaoRegistrarLaudo$Proxy$_$$_WeldSubclass.registrarLaudo(OperacaoRegistrarLaudo$Proxy$_$$_WeldSubclass.java) [classes:]
            at br.gov.serpro.sislv.ws.SislvServiceImpl.registrarLaudo(SislvServiceImpl.java:56) [classes:]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_51]
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_51]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_51]
            at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
            at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52) [jboss-as-ee-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
            at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
            at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63) [jboss-as-ee-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
            at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
            at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63) [jboss-as-ee-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
            at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
            at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
            at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53) [jboss-as-ee-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
            at org.jboss.as.webservices.deployers.WSComponentInstanceAssociationInterceptor.processInvocation(WSComponentInstanceAssociationInterceptor.java:49)
            at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
            at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.2.Final-redhat-1.jar:1.1.2.Final-redhat-1]
            at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:185) [jboss-as-ee-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
            at org.jboss.as.webservices.invocation.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:129)
            at org.jboss.wsf.stack.cxf.JBossWSInvoker.performInvocation(JBossWSInvoker.java:149)
            at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:104)
            at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:237)
            at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:69)
            at org.jboss.wsf.stack.cxf.JBossWSInvoker.invoke(JBossWSInvoker.java:129)
            at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_51]
            at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_51]
            at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
            at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:107)
            at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
            at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
            at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:241)
            at org.jboss.wsf.stack.cxf.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:97)
            at org.jboss.wsf.stack.cxf.transport.ServletHelper.callRequestHandler(ServletHelper.java:131)
            at org.jboss.wsf.stack.cxf.CXFServletExt.invoke(CXFServletExt.java:88)
            at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)
            at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
            at org.jboss.wsf.stack.cxf.CXFServletExt.service(CXFServletExt.java:136)
            at org.jboss.wsf.spi.deployment.WSFServlet.service(WSFServlet.java:140) [jbossws-spi-2.3.0.Final-redhat-1.jar:2.3.0.Final-redhat-1]
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
            at br.gov.frameworkdemoiselle.util.ServletFilter.doFilter(ServletFilter.java:68) [demoiselle-servlet-2.4.2.jar:]
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
            at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
            at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
            at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
            at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
            at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]

I would like to understand why this happens, and get rid of this exception.

I am using Jboss EAP 6.3 and Demoiselle 2.4.2.

Listing some codes from my project:

pom.xml

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
    <demoiselle.framework.version>2.4.2</demoiselle.framework.version>
</properties>

<parent>
    <groupId>br.gov.frameworkdemoiselle</groupId>
    <artifactId>demoiselle-servlet-parent</artifactId>
    <version>2.4.2</version>
</parent>

<repositories>
    <repository>
        <id>redhat-techpreview-all-repository</id>
        <name>Red Hat Tech Preview repository (all)</name>
        <url>http://maven.repository.redhat.com/techpreview/all/</url>
        <layout>default</layout>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
        </releases>
        <snapshots>
            <enabled>false</enabled>
            <updatePolicy>never</updatePolicy>
        </snapshots>
    </repository>
    <repository>
        <id>archiva.internal</id>
        <name>SERPRO Repository for Maven</name>
        <url>http://10.12.1.247:8080/archiva/repository/internal</url>
    </repository>
    <repository>
        <id>component.internal</id>
        <name>SERPRO Component Maven Repository</name>
        <url>http://archiva.desenv.serpro/repository/component-internal</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-rt</artifactId>
        <version>2.2.10</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <type>jar</type>
    </dependency>
    <!-- TODO remover log4j -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>org.jboss.logging</groupId>
        <artifactId>jboss-logging</artifactId>
        <version>3.2.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>1.10.19</version>
    </dependency>
    <dependency>
        <groupId>br.gov.serpro</groupId>
        <artifactId>sqladaj</artifactId>
        <version>2.0.0</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.3.8.Final</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.weld</groupId>
        <artifactId>weld-core</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>br.gov.frameworkdemoiselle</groupId>
        <artifactId>demoiselle-jpa</artifactId>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>br.gov.frameworkdemoiselle</groupId>
        <artifactId>demoiselle-jta</artifactId>
        <scope>compile</scope>
    </dependency>
</dependencies>

persistence.xml

    <?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="sislv-ds" transaction-type="JTA">
            <jta-data-source>java:jboss/datasources/SislvDS</jta-data-source>

            <class>br.gov.serpro.sislv.laudo.entity.DadosVeiculoEntity</class>
            <class>br.gov.serpro.sislv.laudo.entity.DadosVistoriadosEntity</class>
            <class>br.gov.serpro.sislv.laudo.entity.EvEntity</class>
            <class>br.gov.serpro.sislv.laudo.entity.FotografiaEntity</class>
            <class>br.gov.serpro.sislv.laudo.entity.LaudoEntity</class>
            <class>br.gov.serpro.sislv.laudo.entity.ProprietarioEntity</class>

            <properties>
                <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
                <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />

                <property name="hibernate.hbm2ddl.auto" value="update" />
                <property name="hibernate.show_sql" value="true" />
                <property name="hibernate.format_sql" value="true" />

            </properties>
        </persistence-unit>
    </persistence>

Beans.xml

    <beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
        <interceptors>
            <class>br.gov.frameworkdemoiselle.transaction.TransactionalInterceptor</class>
        </interceptors>
    </beans>

standalone.xml

    <subsystem xmlns="urn:jboss:domain:datasources:1.2">
        <datasources>
            <datasource jndi-name="java:jboss/datasources/SislvDS" pool-name="SislvDS" enabled="true" use-java-context="true">
                <connection-url>jdbc:postgresql://localhost:5432/sislv</connection-url>
                <driver>org.postgresql</driver>
                <security>
                    <user-name>postgres</user-name>
                    <password>postgres</password>
                </security>
            </datasource>
            <drivers>
                <driver name="org.postgresql" module="org.postgresql">
                    <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
                </driver>
                <driver name="h2" module="com.h2database.h2">
                    <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                </driver>
            </drivers>
        </datasources>
    </subsystem>

Code relating to the insertion of the entity:

public abstract class SislvJPACrud<T, I, F> {

    private EntityManager entityManager;

    protected EntityManager getEntityManager() {
        if (this.entityManager == null) {
            this.entityManager = Beans.getReference(EntityManager.class);
        }

        return this.entityManager;
    }

    public T insert(final T entity) {
        getEntityManager().persist(entity);
        return entity;
    }
}

Thanks!

Leonardo Leite

1 answer

2


Your project is configured to use JTA transactions. When you use JTA, the Connection#setAutocommit(Boolean) method cannot be called, otherwise it results in the exception you posted.

Demoiselle, when using the extension Demoiselle-jta, detects this situation and when finding the @Transactional annotation uses the JTA API (via the Usertransaction class) to control the transaction.

In your project the problem is in persistence.xml file. Here you have set the property Hibernate.hbm2ddl.auto to update, so at each Jboss startup Hibernate checks if your database is correct and updates it if necessary.

For some reason, Hibernate does not check if the system uses JTA, and simply tries to call the Connection#setAutocommit(true) method internally. This causes the error you are seeing on startup.

The error is not triggered in each function called (save, list, etc), only when Jboss starts.

To get rid of the error, make sure your database is stable (you don’t want to create new entity classes or change existing class attributes) and completely remove the Hibernate.hbm2ddl.auto property from the persistence.xml file. This prevents Hibernate from trying to query or change the database during startup and thus prevents the setAutocommit method from being called. Also, make sure that all transaction methods are annotated with @Transactional.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.