Cadastro com Hibernate e JSF

12 respostas
joaolenosi

Ola amigos, eu fiz um sistema de cadastro de usuários utilziando o mysql, fui migrar de banco, estou tendo um problema !
aqui é meu hibernater.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!--Configurações do hibernate: mapeamento dos objetos -->
<hibernate-configuration>
 <!--session-factory atraves dele é que eu faço o mapeamento e as configurações do hibernate -->
    <session-factory>
    <property name="hibernate.bytecode.use_reflection_optimizer">false</property>  
        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>  
        <property name="hibernate.connection.password">tecnologia</property>  
        <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/login</property>  
        <property name="hibernate.connection.username">123</property>  
        <property name="hibernate.dialect">org.hibernate.dialect.ProgressDialect</property>  
        <property name="hibernate.show_sql">false</property>  
             
       <!--Mapeamento da class Usuario -->
       <mapping class="com.br.joaoleno.usuario.Usuario"></mapping>
   </session-factory>
</hibernate-configuration>

aqui é o erro que estar dando

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: org.hibernate.HibernateException: No CurrentSessionContext configured!
	com.br.joaoleno.web.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:44)

root cause

org.hibernate.HibernateException: No CurrentSessionContext configured!
	org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:696)
	com.br.joaoleno.web.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:28)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.22 logs.

e aqui é o arquivo referente ao erro

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.br.joaoleno.web.filter;
import javax.servlet.*;
import org.hibernate.SessionFactory;
import com.br.joaoleno.util.*;
import java.io.IOException;
import java.rmi.ServerException;

/**
 *
 * @author JOHN LENON
 */
public class HibernateSessionRequestFilter implements Filter {
    
    private SessionFactory sf;

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
       sf = HibernateUtil.getSessionFactory();
    }

    @Override
    public void doFilter(ServletRequest sRq, ServletResponse sRp, FilterChain chain) throws IOException, ServletException {
        try{
            sf.getCurrentSession().beginTransaction();
            chain.doFilter(sRq, sRp);
            sf.getCurrentSession().getTransaction().commit();
            sf.getCurrentSession().close();
        }
        catch(Throwable erro){
            try{
                if(sf.getCurrentSession().getTransaction().isActive()){
                    sf.getCurrentSession().getTransaction().rollback();
                }
            }
            catch(Throwable ex){
                System.out.println("Erro .: "+ex.getMessage());
                ex.printStackTrace();
            }
            
            throw new ServletException(erro);
        }
    }

    @Override
    public void destroy() {
      System.out.println("Sessão finalizada");
    }
    
}

Alguem sabe o que tem de errado ? já olhei bem direitinho e não vejo erro, lembrando que eu ja coloquei o jar do postgresql!!!

alguem ajuda ?

12 Respostas

ErickRAR

precisa colocar no seu xml a property current_session_context_class.

joaolenosi

Erick coloquei, mais mesmo assim, ainda continue recebendo a mensagem de erro.
olha meu hibernate.cfg

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver.class">org.postgresql.Driver</property> 
        <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/login</property>
        <property name="hibernate.connection.username">postgres</property>
        <property name="hibernate.connection.password">160406</property>
        <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
        <property name="current_session_context_class">org.postgresql.Driver</property>
       <mapping class="com.br.joaoleno.usuario.Usuario"></mapping>
   </session-factory>
</hibernate-configuration>
joaolenosi

Acho que descubri o problema.
O problema tá é que o nome de usario não é postgres e sim admin, mas quando eu troco o username que mando executar, recebo esse erro no netbeans!!

init: deps-module-jar: deps-ear-jar: deps-jar: library-inclusion-in-archive: library-inclusion-in-manifest: compile: compile-jsps: Desimplantando... undeploy?path=/Usuario OK - Undeployed application at context path /Usuario Deployment localizado em C:\Users\Joao Leno\Documents\NetBeansProjects\CadastroUsuario\build\web Deployment em andamento... deploy?config=file%3A%2FC%3A%2FUsers%2FJOAOLE%7E1%2FAppData%2FLocal%2FTemp%2Fcontext32905.xml&path=/Usuario FAIL - Deployed application at context path /Usuario but context failed to start C:\Users\Joao Leno\Documents\NetBeansProjects\CadastroUsuario\nbproject\build-impl.xml:754: O módulo não foi implementado. Verifique o registro do servidor para mais detalhes. FALHA NA CONSTRUÇÃO (tempo total: 6 segundos)

ErickRAR

Os valores para elas podem ser “jta”, “thread”, e"managed". Eu utilizo com thread normalmente.

<property name="current_session_context_class">thread</property>

De uma olhada aqui caso queira saber um pouco mais.

joaolenosi

ErickRAR , eu também ja coloquei assim, agora estou tendo problema pra executar, quando mudei o username de postgresql para admin
recebo esse erro?

FAIL - Deployed application at context path /Usuario but context failed to start C:\Users\Joao Leno\Documents\NetBeansProjects\CadastroUsuario\nbproject\build-impl.xml:754: O módulo não foi implementado. Verifique o registro do servidor para mais detalhes. FALHA NA CONSTRUÇÃO (tempo total: 3 segundos)

joaolenosi

vou tentar alterar o nome de usuario do postgres

joaolenosi

não entendo o por que, quando eu coloco o username admin da erro na execução do projeto

<property name="hibernate.connection.username">admin</property>

deploy?config=file%3A%2FC%3A%2FUsers%2FJOAOLE%7E1%2FAppData%2FLocal%2FTemp%2Fcontext32909.xml&path=/Usuario FAIL - Deployed application at context path /Usuario but context failed to start C:\Users\Joao Leno\Documents\NetBeansProjects\CadastroUsuario\nbproject\build-impl.xml:754: O módulo não foi implementado. Verifique o registro do servidor para mais detalhes. FALHA NA CONSTRUÇÃO (tempo total: 3 segundos)

ErickRAR

Tente alterar o dialect para

org.hibernate.dialect.PostgreSQLDialect
ErickRAR

Se não for isso, “limpe” o projeto.
Executar >> “Limpar e Construir o Projeto” ou então Executar >> “Contruir Projeto”

E se não for isso, verifique seus jars.
E se não for isso… eu não sei. :smiley:

joaolenosi

kkk, ja limpei e construir o projeto centenas de vezes, acho que deve ser os jars, eu coloquei todos os JDBC do postgres no meu projeto

joaolenosi

Agora estou com esse erro

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: org.hibernate.exception.JDBCConnectionException: Cannot open connection
	com.br.joaoleno.web.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:44)

root cause

org.hibernate.exception.JDBCConnectionException: Cannot open connection
	org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:99)
	org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
	org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
	org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
	org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
	org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
	org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1463)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:344)
	$Proxy21.beginTransaction(Unknown Source)
	com.br.joaoleno.web.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:28)

root cause

java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432/login
	java.sql.DriverManager.getConnection(DriverManager.java:602)
	java.sql.DriverManager.getConnection(DriverManager.java:154)
	org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
	org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
	org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
	org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
	org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
	org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1463)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:344)
	$Proxy21.beginTransaction(Unknown Source)
	com.br.joaoleno.web.filter.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:28)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.22 logs.

qual o jar que devo colocar pra conectar?
estou usando o postgreSQL 8.2

Hebert_Coelho

joaolenosi:
qual o jar que devo colocar pra conectar?
estou usando o postgreSQL 8.2
Sem ofensa, procurou no google?
procura isso aqui: “download jar postgres”

Criado 3 de julho de 2012
Ultima resposta 3 de jul. de 2012
Respostas 12
Participantes 3