@Henrique_Greg escreveu:
Olá Pessoal, estou tentando salvar um objeto no banco Mysql com o Hibernate.
Porém quando eu preencho os dados na tela de cadastro eu recebo um erro dizendo que a transação já está ativa
Obs. Percebi que quando eu requisito a url no navegador, o console mostra um sql gerado pelo hibernate. (Apenas requisistando a página)Outra observação é que a listagem dos objetos já cadastrados funciona normalmente.
(Inclusive a página de cadastro estava funcionando pois foi assim que eu inseri os dados) deu esse erro derepente... já desliguei o pc troquei a versão do tomcat e nada....Erro no Navegador
HTTP Status 500 - java.lang.IllegalStateException: Transaction already active type Exception report message java.lang.IllegalStateException: Transaction already active description The server encountered an internal error that prevented it from fulfilling this request. exception javax.servlet.ServletException: java.lang.IllegalStateException: Transaction already active javax.faces.webapp.FacesServlet.service(FacesServlet.java:671) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause javax.faces.el.EvaluationException: java.lang.IllegalStateException: Transaction already active javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter. java:101) com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) javax.faces.component.UICommand.broadcast(UICommand.java:315) javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) javax.faces.webapp.FacesServlet.service(FacesServlet.java:658) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause java.lang.IllegalStateException: Transaction already active org.hibernate.jpa.internal.TransactionImpl.begin(TransactionImpl.java:42) com.gregory.modelo.dao.FuncionarioDao.save(FuncionarioDao.java:21) com.gregory.modelo.beans.FuncionarioBean.grava(FuncionarioBean.java:25) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.apache.el.parser.AstValue.invoke(AstValue.java:279) org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273) com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter. java:87) com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) javax.faces.component.UICommand.broadcast(UICommand.java:315) javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) javax.faces.webapp.FacesServlet.service(FacesServlet.java:658) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.72 logs.
Erro no Console
out 30, 2016 8:34:12 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute WARNING: #{funcionarioBean.grava}: java.lang.IllegalStateException: Transaction already active javax.faces.FacesException: #{funcionarioBean.grava}: java.lang.IllegalStateException: Transaction already active at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118) at javax.faces.component.UICommand.broadcast(UICommand.java:315) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1083) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:640) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: javax.faces.el.EvaluationException: java.lang.IllegalStateException: Transaction already active at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java: 101) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) ... 27 more Caused by: java.lang.IllegalStateException: Transaction already active at org.hibernate.jpa.internal.TransactionImpl.begin(TransactionImpl.java:42) at com.gregory.modelo.dao.FuncionarioDao.save(FuncionarioDao.java:21) at com.gregory.modelo.beans.FuncionarioBean.grava(FuncionarioBean.java:25) 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 org.apache.el.parser.AstValue.invoke(AstValue.java:279) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273) at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java: 87) ... 28 more out 30, 2016 8:34:12 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/TimeControl] threw exception [java.lang.IllegalStateException: Transaction already active] with root cause java.lang.IllegalStateException: Transaction already active at org.hibernate.jpa.internal.TransactionImpl.begin(TransactionImpl.java:42) at com.gregory.modelo.dao.FuncionarioDao.save(FuncionarioDao.java:21) at com.gregory.modelo.beans.FuncionarioBean.grava(FuncionarioBean.java:25) 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 org.apache.el.parser.AstValue.invoke(AstValue.java:279) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273) at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java: 87) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) at javax.faces.component.UICommand.broadcast(UICommand.java:315) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1083) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:640) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
-----------------------Classe Funcionario Bean-----------------------------------
package com.gregory.modelo.beans;import java.util.List; import javax.faces.bean.ManagedBean; import com.gregory.modelo.Funcionario; import com.gregory.modelo.dao.FuncionarioDao; @ManagedBean public class FuncionarioBean { //Variáveis... private FuncionarioDao dao = new FuncionarioDao(); private List<Funcionario> funcionarios = this.listaTodos(); public Funcionario getFuncionario() { return funcionario; } private Funcionario funcionario = new Funcionario(); public void grava(){ dao.save(funcionario); } public List<Funcionario> listaTodos(){ return dao.returnAll(); } public List<Funcionario> getFuncionarios() { return funcionarios; }
}
A Classe FuncionarioDao....
package com.gregory.modelo.dao; import java.time.Duration; import java.time.LocalTime; import java.util.ArrayList; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.Query; import com.gregory.modelo.Funcionario; import com.gregory.util.DataUtil; import com.gregory.util.JPAUtil; public class FuncionarioDao { EntityManager em = JPAUtil.getEntityManager(); public void save(Funcionario f){ em.getTransaction().begin(); em.persist(f); em.getTransaction().commit(); em.close(); } public void delete(Funcionario f){ String jpql = ""; em.getTransaction().begin(); Query q = em.createQuery(jpql); q.executeUpdate(); em.getTransaction().commit(); em.close(); } public void update(Funcionario f){ } // Formato do CPF tem que ser no Padrao 000-000-000.00 @SuppressWarnings("unchecked") public List<Funcionario> FindsByCpf(String cpf){ String jpql ="select f from Funcionario f where f.CPF='"+cpf+"'"; List<Funcionario> lista ; em.getTransaction().begin(); Query q = em.createQuery(jpql); lista = q.getResultList(); return lista; } @SuppressWarnings("unchecked") public List<Funcionario> returnAll(){ String jpql ="select f from Funcionario f"; List<Funcionario> lista ; em.getTransaction().begin(); Query q = em.createQuery(jpql); lista = q.getResultList(); return lista; }
Página de cadastro
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" > <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Cadastra Funcionário</title> </head> <h:body> <center> <h:form> <h:panelGrid columns="2"> Nome: <h:inputText id="name" value="#{funcionarioBean.funcionario.nome}" /> CPF: <h:inputText id="cpf" value="#{funcionarioBean.funcionario.CPF}"/> Função: <h:inputText id="function" value="#{funcionarioBean.funcionario.funcao}"/> <h:commandButton value="Gravar" action="#{funcionarioBean.grava}" /> <br /> </h:panelGrid> </h:form> </center> </h:body>
`
Página de Listagem -- (Essa funciona sem problemas)
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Listagem dos Funcionários</title> </head> <h:body> <h1 style="text-align: center;">Funcionários Cadastrados</h1> <center> <h:dataTable value="#{funcionarioBean.funcionarios}" var="f" border="1"> <h:column> <f:facet name="header">cpf</f:facet> #{f.CPF} </h:column> <h:column> <f:facet name="header">Nome</f:facet> #{f.nome} </h:column> <h:column> <f:facet name="header">Cargo</f:facet> #{f.funcao} </h:column> </h:dataTable> </center> </h:body> </html>
Agradeço a atenção de Todos!!
Mensagens: 1
Participantes: 1