Hibernate + JPA + Glassfish?[Resolvido]

3 respostas
F

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!

3 Respostas

F

Ok, achei a Luz que eu precisava aqui: http://www.netbeans.org/kb/articles/hibernate-javaee.html

Agora achei estranho esse negocio de ter que jogar todos os jar na pasta LIB do Glassfish, isso é normal??

L

fredferrao:
Ok, achei a Luz que eu precisava aqui: http://www.netbeans.org/kb/articles/hibernate-javaee.html

Agora achei estranho esse negocio de ter que jogar todos os jar na pasta LIB do Glassfish, isso é normal??

Cara, esse seu post me salvou, toh desde ontem de manha com exatamente o mesmo problema que voce, e foi soh colocar os jars no lib do glassfish que funcionou, valeu por postar a solução nesse seu tópico :smiley:

uma dúvida: voce axou o pq de ter q colocar os jars na lib do glassfish? pq eu tentei tb colocar na pasta lib do domain q eu estava subindo minha aplicação(no caso, domain1), porém tb nao funcionou, soh funcionou colocando na pasta lib do raíz do glassfish mesmo…

de qlq maneira, valeu pela ajuda ae cara

[]'sss!!!

R

cara como está teu web.xml pois eu ja fiz de tudo e nao sei mais o que fazer, ta acontecendo isso aki

[#|2009-10-14T19:06:31.997-0200|SEVERE|sun-appserver2.1|javax.enterprise.system.container.web|_ThreadID=16;_ThreadName=httpSSLWorkerThread-8080-1;_RequestID=78d81c3a-f2ef-496c-9cb6-1f3358856f76;|StandardWrapperValve[Jersey Web Application]: PWC1406: Servlet.service() for servlet Jersey Web Application threw exception
com.sun.jersey.api.container.MappableContainerException: javax.naming.NameNotFoundException: No object bound to name java:comp/env/persistence/citespace-jpa
        at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:74)
        at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:208)
        at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:75)
        at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:115)
        at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:67)
        at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:746)
        at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:711)
        at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:702)
        at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:340)
        at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:452)
        at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:633)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
        at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
        at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
        at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
        at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
        at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
        at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
        at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
        at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
        at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: javax.naming.NameNotFoundException: No object bound to name java:comp/env/persistence/citespace-jpa
        at com.sun.enterprise.naming.NamingManagerImpl.lookup(NamingManagerImpl.java:856)
        at com.sun.enterprise.naming.java.javaURLContext.lookup(javaURLContext.java:173)
        at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:407)
        at javax.naming.InitialContext.lookup(InitialContext.java:392)
        at com.citespace.citespacerest.Test.getIt(Test.java:30)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:156)
        at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
        ... 39 more
|#]
Criado 7 de junho de 2008
Ultima resposta 14 de out. de 2009
Respostas 3
Participantes 3