PessoAll, boa noite por favor alguem sabe informar o porque desse erro?
javax.persistence.PersistenceException: [PersistenceUnit: ocp] Unable to build EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
at com.supportcomm.ocp.util.CreateClass.main(CreateClass.java:20)
Caused by: org.hibernate.service.jndi.JndiException: Error parsing JNDI name [java:comp/env/jdbc/ocp]
at org.hibernate.service.jndi.internal.JndiServiceImpl.parseName(JndiServiceImpl.java:92)
at org.hibernate.service.jndi.internal.JndiServiceImpl.locate(JndiServiceImpl.java:63)
at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.configure(DatasourceConnectionProviderImpl.java:116)
at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:223)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:89)
at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:77)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2287)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2283)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1752)
at org.hibernate.ejb.EntityManagerFactoryImpl.(EntityManagerFactoryImpl.java:94)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)
… 5 more
Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:344)
at javax.naming.InitialContext.getNameParser(InitialContext.java:499)
at org.hibernate.service.jndi.internal.JndiServiceImpl.parseName(JndiServiceImpl.java:86)
… 21 more
It is over
Olha só minha configuração:
persistence xml que esta no metainf:
<?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="ocp" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<non-jta-data-source>java:comp/env/jdbc/ocp</non-jta-data-source>
<class>com.supportcomm.ocp.entity.Company</class>
<class>com.supportcomm.ocp.entity.Ivr</class>
<class>com.supportcomm.ocp.entity.Login</class>
<class>com.supportcomm.ocp.entity.Occupation</class>
<class>com.supportcomm.ocp.entity.Portal</class>
<class>com.supportcomm.ocp.entity.Site</class>
<properties>
<property name="hibernate.connection.username" value="postgres" />
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
<property name="hibernate.connection.password" value="postgres" />
<property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/ocpdb" />
<property name="hibernate.connection.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
</properties>
</persistence-unit>
</persistence>
server.xml que esta no tomcat
<Resource auth="Container" driverClassName="org.postgresql.Driver"
maxActive="100" maxIdle="30" maxWait="10000" name="jdbc/ocp"
password="postgres" type="javax.sql.DataSource"
url="jdbc:postgresql://localhost:5432/ocpdb" username="postgres"/>
Classe de teste de conexão:
package com.supportcomm.ocp.util;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class CreateClass {
public static void main(String[] args) {
try {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("ocp");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
List list = new ArrayList();
list = em.createNamedQuery("listaLogin").getResultList();
System.out.println("check");
System.out.println(list.get(0));
} catch (Exception e) {
//em.getTransaction().rollback();
e.printStackTrace();
} finally {
//emf.close();
}
System.out.println("It is over");
}
}
Ja perdi o dia tentando descobrir. Agredeço quem puder ajudar.