Galera,
Não estou conseguindo acessar o banco usando JTA.
O erro é esse:
Grave: javax.persistence.PersistenceException: [PersistenceUnit: GerenciaDeFrotaPU] Unable to build EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at br.com.mitter.dao.EntityManagerHelper.init(EntityManagerHelper.java:26)
at br.com.mitter.dao.EntityManagerHelper.getEntityManager(EntityManagerHelper.java:38)
at br.com.mitter.dao.DaoPrincipal.editar(DaoPrincipal.java:71)
at br.com.mitter.controle.LogradouroControle.atualizarLogradouro(LogradouroControle.java:25)
at br.com.mitter.janela.JanelaLogradouro.salvar(JanelaLogradouro.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.sun.el.parser.AstValue.invoke(AstValue.java:254)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:148)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
at javax.faces.component.UICommand.broadcast(UICommand.java:300)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
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:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.hibernate.HibernateException: Could not instantiate TransactionManagerLookup 'org.hibernate.transaction.JDBCTransaction'
at org.hibernate.transaction.TransactionManagerLookupFactory.getTransactionManagerLookup(TransactionManagerLookupFactory.java:47)
at org.hibernate.transaction.JTATransactionFactory.configure(JTATransactionFactory.java:48)
at org.hibernate.transaction.TransactionFactoryFactory.buildTransactionFactory(TransactionFactoryFactory.java:51)
at org.hibernate.cfg.SettingsFactory.createTransactionFactory(SettingsFactory.java:418)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:138)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
... 49 more
Grave: at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677)
Grave: at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
Grave: at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
Grave: at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
Grave: at br.com.mitter.dao.EntityManagerHelper.init(EntityManagerHelper.java:26)
Grave: at br.com.mitter.dao.EntityManagerHelper.getEntityManager(EntityManagerHelper.java:38)
Grave: at br.com.mitter.dao.DaoPrincipal.editar(DaoPrincipal.java:71)
Grave: at br.com.mitter.controle.LogradouroControle.atualizarLogradouro(LogradouroControle.java:25)
Grave: at br.com.mitter.janela.JanelaLogradouro.salvar(JanelaLogradouro.java:70)
Grave: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Grave: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
Grave: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Grave: at java.lang.reflect.Method.invoke(Method.java:601)
Grave: at com.sun.el.parser.AstValue.invoke(AstValue.java:254)
Grave: at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
Grave: at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
Grave: at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:148)
Grave: at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
Grave: at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
Grave: at javax.faces.component.UICommand.broadcast(UICommand.java:300)
Grave: at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
Grave: at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
Grave: at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
Grave: at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
Grave: at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
Grave: at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
Grave: at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
Grave: at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
Grave: at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
Grave: at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
Grave: at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
Grave: at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
Grave: at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
Grave: at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
Grave: at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
Grave: at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
Grave: at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
Grave: at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
Grave: at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
Grave: at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
Grave: at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
Grave: at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
Grave: at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
Grave: at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
Grave: at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
Grave: at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
Grave: at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
Grave: at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
Grave: at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
Grave: at java.lang.Thread.run(Thread.java:722)
Grave: Caused by: org.hibernate.HibernateException: Could not instantiate TransactionManagerLookup 'org.hibernate.transaction.JDBCTransaction'
Grave: at org.hibernate.transaction.TransactionManagerLookupFactory.getTransactionManagerLookup(TransactionManagerLookupFactory.java:47)
Grave: at org.hibernate.transaction.JTATransactionFactory.configure(JTATransactionFactory.java:48)
Grave: at org.hibernate.transaction.TransactionFactoryFactory.buildTransactionFactory(TransactionFactoryFactory.java:51)
Grave: at org.hibernate.cfg.SettingsFactory.createTransactionFactory(SettingsFactory.java:418)
Grave: at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:138)
Grave: at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
Grave: at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
Grave: at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
Grave: at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
Grave: ... 49 more
O meu arquivo de Persistencia:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
<persistence-unit name="GerenciaDeFrotaPU" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/rastreamento</jta-data-source>
<class>br.com.mitter.modelo.FabricanteEquipamento</class>
<class>br.com.mitter.modelo.Permissao</class>
<class>br.com.mitter.modelo.Tecnico</class>
<class>br.com.mitter.modelo.Linha</class>
<class>br.com.mitter.modelo.ProprietarioVeiculo</class>
<class>br.com.mitter.modelo.UsuarioPermissao</class>
<class>br.com.mitter.modelo.ModeloEquipamento</class>
<class>br.com.mitter.modelo.Usuario</class>
<class>br.com.mitter.modelo.Equipamento</class>
<class>br.com.mitter.modelo.Logradouro</class>
<class>br.com.mitter.modelo.Bairro</class>
<class>br.com.mitter.modelo.Transmissao</class>
<class>br.com.mitter.modelo.Cor</class>
<class>br.com.mitter.modelo.HistoricoTipo</class>
<class>br.com.mitter.modelo.Telefone</class>
<class>br.com.mitter.modelo.TelefoneTipo</class>
<class>br.com.mitter.modelo.Operadora</class>
<class>br.com.mitter.modelo.Comando</class>
<class>br.com.mitter.modelo.Pacote</class>
<class>br.com.mitter.modelo.Veiculo</class>
<class>br.com.mitter.modelo.Estado</class>
<class>br.com.mitter.modelo.FabricanteVeiculo</class>
<class>br.com.mitter.modelo.Plano</class>
<class>br.com.mitter.modelo.ModeloVeiculo</class>
<class>br.com.mitter.modelo.Proprietario</class>
<class>br.com.mitter.modelo.Historico</class>
<class>br.com.mitter.modelo.Motorista</class>
<class>br.com.mitter.modelo.Cidade</class>
<properties>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.JTATransactionFactory" />
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JDBCTransaction" />
</properties>
</persistence-unit>
</persistence>
Pedaco do meu codigo que eu chamo o persitence
private static EntityManagerFactory emf;
private static ThreadLocal<EntityManager> threadLocal = new ThreadLocal<EntityManager>();
private static void init() throws FrotaWebException {
emf = Persistence.createEntityManagerFactory("GerenciaDeFrotaPU");
}
public static EntityManager getEntityManager() throws FrotaWebException {
EntityManager manager = threadLocal.get();
try {
if (manager == null || !manager.isOpen()) {
init();
manager = emf.createEntityManager();
threadLocal.set(manager);
}
} catch (Exception e) {
init();
manager = emf.createEntityManager();
threadLocal.set(manager);
}
return manager;
}