Galera to apanhando feito doido aqui tentando usar esses 3 juntos, bom tenho o seguinte aqui:
Persistence.xml
<?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="agendaPU" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>agenda</jta-data-source>
<class>agenda.model.Cidade</class>
<class>agenda.model.Cliente</class>
<class>agenda.model.Agenda</class>
<class>agenda.model.Funcionario</class>
<class>agenda.model.Horarios</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
<property name="hibernate.show_sql" value="false"/>
</properties>
</persistence-unit>
</persistence>
sun-resources.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Resource Definitions //EN" "http://www.sun.com/software/appserver/dtds/sun-resources_1_3.dtd">
<resources>
<jdbc-resource enabled="true" jndi-name="agenda" object-type="user" pool-name="postgrePool">
<description/>
</jdbc-resource>
<jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="org.postgresql.xa.PGXADataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="postgrePool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.XADataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false">
<property name="databaseName" value="OdontoAgenda"/>
<property name="URL" value="jdbc:postgresql://localhost:5432/OdontoAgenda"/>
<property name="User" value="postgres"/>
<property name="Password" value="developerfred"/>
</jdbc-connection-pool>
</resources>
E entao o DAO que fiz aqui pra teste:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package agenda.persistence;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
/**
*
* @author Frederico Ferrao da Silva
*/
public class BaseDAO<T> {
private EntityManagerFactory emf;
private EntityManager em;
public BaseDAO() {
emf = Persistence.createEntityManagerFactory("agendaPU");
em = emf.createEntityManager();
}
public boolean create(T obj) {
try {
em.getTransaction().begin();
em.persist(obj);
return true;
} catch (Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
return false;
}
}
}
A questa agora é? Esta correto este meu DAO? Ou seja como faço para inicializar o EntityManager, pois assim esta dando erro.
javax.servlet.ServletException: #{Teste.cadastra}: javax.persistence.PersistenceException: No Persistence provider for EntityManager named agendaPU: Provider named org.hibernate.ejb.HibernatePersistence threw unexpected exception at create EntityManagerFactory:
java.lang.AbstractMethodError
java.lang.AbstractMethodError: org.postgresql.jdbc3.Jdbc3Connection.getClientInfo()Ljava/util/Properties;
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
...
...
The following providers:
oracle.toplink.essentials.PersistenceProvider
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
Returned null to createEntityManagerFactory.
Outra duvida, o que esse oracle.toplink faz aqui?? Se estou usando Hibernate?
Porem se tento assim:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package agenda.persistence;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceContext;
/**
*
* @author Frederico Ferrao da Silva
*/
public class BaseDAO<T> {
private EntityManagerFactory emf;
@PersistenceContext(name = "agendaPU")
private EntityManager em;
public BaseDAO() {
}
public boolean create(T obj) {
try {
em.getTransaction().begin();
em.persist(obj);
return true;
} catch (Exception e) {
e.printStackTrace();
em.getTransaction().rollback();
return false;
}
}
}
Tambem ta dando erro:
Null component com.sun.appserv:type=JspMonitor,name=jsp,WebModule=//server/Agenda,J2EEApplication=null,J2EEServer=server
WEB0123: WebModule [Agenda] failed to deploy and has been disabled
java.lang.AbstractMethodError: org.postgresql.jdbc3.Jdbc3Connection.getClientInfo()Ljava/util/Properties;
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
...
...
Caused by: java.lang.AbstractMethodError: org.postgresql.jdbc3.Jdbc3Connection.getClientInfo()Ljava/util/Properties;
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
...
...
... 67 more
ADM5603:Event listener error [org.postgresql.jdbc3.Jdbc3Connection.getClientInfo()Ljava/util/Properties;]
ADM1075:Error on listening event:[org.postgresql.jdbc3.Jdbc3Connection.getClientInfo()Ljava/util/Properties;]
To perdido agora.
Alguem poderia me dar um help?
Tipo to tentando usar JTA, e nao RESOURCE_LOCAL, seria JTA o aconcelhavel certo?
Bom qual seria o passo a passo de uma app usando hibernate + JPA + Glassfish + PostgreSQL?
Alguem teria um exemplo ae? Ou me ajude nesse meu!
OBS: no Glassfish o datasource esta configurado, tanto em JDBC Resource “agenda” quanto em JDBC Pools “postgrePool” e este ultimo setado a classe: “org.postgresql.xa.PGXADataSource” e type para: “javax.sql.XADataSource”
Galera é isso ae, agora nao sei pra onde ir!
