Problemas com a Classe de conexao

Olá Pessoal,

Estou com problemas ao conectar minha API com o banco de dados.
Sempre que solicito a conexao ele me retorna que tenho que implementar um método setSession da DAOFactory.java na classe UsuarioDAOHibernate. Quando retiro o bloco de código sugerido ele retorna que o método nao existe.

Alguém pode me ajudar?

Classe DAOFactory.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ifrr.usuario;

/**
 *
 * @author Cristofe Rocha
 */
public class DAOFactory {

    public static UsuarioDAO criarUsuarioDAO() {
        UsuarioDAOHibernate UsuarioDAO = new UsuarioDAOHibernate();
        UsuarioDAO.setSession(HibernateUtil.getSessionFactory().getCurrentSession());
        return UsuarioDAO;
    }
}

usuarioDAOhibernete.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.ifrr.usuario;

/**
 *
 * @author cristofe Rocha
 */

import java.util.List;
import org.hibernate.*;


public class UsuarioDAOHibernate implements UsuarioDAO {

    private Session sessao;
    private Transaction transacao;

      public void salvar(Usuario usuario) {
       // Session sessao = null;
        //Transaction transacao2 = null;
        try {
            sessao = HibernateUtil.getSessionFactory().openSession();
            transacao = sessao.beginTransaction();
            sessao.save(usuario);
            transacao.commit();
        } catch (HibernateException e) {
            System.out.println("Nao foi possivel Salvar o usuario");
        } finally {
            try {
                sessao.close();
            } catch (Throwable e) {
                System.out.println("Erro ao fechar a Operaçao de sessao !" + e.getMessage());

            }

        }

    }

    public void Atualizar(Usuario usuario) {
        Session sessao = null;
        Transaction transacao = null;
        try {
            sessao = HibernateUtil.getSessionFactory().openSession();
            transacao = sessao.beginTransaction();
            sessao.save(usuario);
            transacao.commit();
        } catch (HibernateException e) {
            System.out.println("Nao foi possivel Salva o usuario");
        } finally {
            try {
                sessao.close();
            } catch (Throwable e) {
                System.out.println("Erro ao fechar a Operaçao de sessao !" + e.getMessage());

            }

        }

    }

    public void Excluir(Usuario usuario) {
        Session sessao = null;
        Transaction transacao = null;
        try {
            sessao = HibernateUtil.getSessionFactory().openSession();
            transacao = sessao.beginTransaction();
            sessao.delete(usuario);
            transacao.commit();
        } catch (HibernateException e) {
            System.out.println("Nao foi possivel deletar o usuario");
        } finally {
            try {
                sessao.close();
            } catch (Throwable e) {
                System.out.println("Erro ao fechar a Operaçao de sessao !" + e.getMessage());

            }

        }

    }

    public List<Usuario> listar() {
        Session sessao = null;
        Transaction transacao = null;
        Query consulta = null;
        List<Usuario> resultado = null;
        try {
            sessao = HibernateUtil.getSessionFactory().openSession();
            transacao = sessao.beginTransaction();
            consulta = sessao.createQuery("from usuario");
            resultado = consulta.list();
            transacao.commit();
            return resultado;
        } catch (HibernateException e) {
            System.out.println("Nao foi possivel Buscar a lista do usuario" + e.getMessage());
            throw new HibernateException(e);
        } finally {
            try {
                sessao.close();
            } catch (Throwable e) {
                System.out.println("Erro ao fechar a Operaçao de Consulta !" + e.getMessage());

            }

        }
    }

    public Usuario BuscaUsuario(int valor) {
        Usuario usuario = null;
        Session sessao = null;
        Transaction transacao = null;
        Query consulta = null;
        try {
            sessao = HibernateUtil.getSessionFactory().openSession();
            transacao = sessao.beginTransaction();
            consulta = sessao.createQuery("from USUARIO where id=:parametro");
            consulta.setInteger("parametro", valor);
            usuario = (Usuario) consulta.uniqueResult();
            transacao.commit();
            return usuario;
        } catch (HibernateException e) {
            System.out.println("Nao foi possivel Buscar o usuario");
        } finally {
            try {
                sessao.close();
            } catch (Throwable e) {
                System.out.println("Erro ao fechar a Operaçao de sessao !" + e.getMessage());

            }

        }

        return usuario;
    }

   [b] void setSession(org.hibernate.classic.Session currentSession) {
        throw new UnsupportedOperationException("Not yet implemented");
    }[/b]
 

}

HiberteUtil.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.ifrr.usuario;


import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;

/**
 * Hibernate Utility class with a convenient method to get Session Factory object.
 *
 * @author Cristofe Rocha
 */
public class HibernateUtil {
    private static final SessionFactory sessionFactory;

    static {
        try {
            // Create the SessionFactory from standard (hibernate.cfg.xml) 
            // config file.
            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Log the exception. 
            System.err.println("Inicio da Fabrica de Sessao Falha !!." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}

UsuarioRN.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ifrr.usuario;

import java.util.List;

/**
 *
 * @author Cristofe Rocha
 */
public class UsuarioRN {

    private UsuarioDAOHibernate UsuarioDAOHibernate;

    public UsuarioRN() {
        this.UsuarioDAOHibernate = (UsuarioDAOHibernate) DAOFactory.criarUsuarioDAO();
    }

    public void excluir(Usuario usuario) {
        this.UsuarioDAOHibernate.Excluir(usuario);
    }

    public List<Usuario> listar() {
        return this.UsuarioDAOHibernate.listar();
    }

    public void salvar(Usuario usuario) {
        Integer codigo = usuario.getCod_usuario();
        if (codigo == null || codigo == 0) {
            this.UsuarioDAOHibernate.salvar(usuario);
        } else {
            this.UsuarioDAOHibernate.Atualizar(usuario);

        }
        this.UsuarioDAOHibernate.salvar(usuario);
    }
}

Classe de interface

UsuarioDAO.java

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package br.ifrr.usuario;
/**
*

  • @author Cristofe Rocha
    */
    public interface UsuarioDAO {
    public void salvar(Usuario usuario);

}[/code]

Logs

javax.faces.el.EvaluationException: org.hibernate.HibernateException: No CurrentSessionContext configured!
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
	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:312)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:680)
Caused by: org.hibernate.HibernateException: No CurrentSessionContext configured!
	at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:542)
	at br.ifrr.usuario.DAOFactory.criarUsuarioDAO(DAOFactory.java:15)
	at br.ifrr.usuario.UsuarioRN.<init>(UsuarioRN.java:18)
	at br.ifrr.usuario.UsuarioBean.salvar(UsuarioBean.java:33)
	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 org.apache.el.parser.AstValue.invoke(AstValue.java:191)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:98)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	... 23 more

Onde e como vc configurou os parâmetros do banco. Ex: porta, driver do banco, usuario…???
Posta aee!

Segue meu hibernate.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">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
        <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/aluno</property>
        <property name="hibernate.connection.username">postgres</property>
        <property name="hibernate.connection.password">manager</property>
        <property name="current_session_context_class">thread</property>
        <mapping class="br.ifrr.usuario.Usuario"/>
    </session-factory>
</hibernate-configuration>

Aguardo amigo,

[quote=carlos_hen]Onde e como vc configurou os parâmetros do banco. Ex: porta, driver do banco, usuario…???
Posta aee![/quote]
Segue meu hibernate.cfg.xml

[code]

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <session-factory>  
    
  3.     <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>  
    
  4.     <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>  
    
  5.     <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/aluno</property>  
    
  6.     <property name="hibernate.connection.username">postgres</property>  
    
  7.     <property name="hibernate.connection.password">manager</property>  
    
  8.     <property name="current_session_context_class">thread</property>  
    
  9.     <mapping class="br.ifrr.usuario.Usuario"/>  
    
  10. </session-factory>  [/code]
    

A solução é :

:smiley: