Duvidas de Hibernate

Caros colegas
Estou estudando hibernate e fiz uma pequena aplicacao web,ocorre que quando estou validando o usuario ocorre um erro de “java.lang.NullPointerException”.

1.Arquivo de configuração do hibernate

org.hibernate.dialect.HSQLDialect true "org.hsqldb.jdbcDriver" jdbc:hsqldb:mem:test sa

2.Mapeamento da minha classe usuario

3.Classe usuariohbdao com o metodo open que faz a conecxao com o bd.

public String open() {
try {
url = UsuarioHbDao.class.getResource(“hibernate-config.xml”);
cfg = new Configuration();
cfg.configure(url);
sf = cfg.buildSessionFactory();
session = sf.openSession();
session.setFlushMode(FlushMode.COMMIT);
aberta=true;
return “”;
} catch(HibernateException e) {
System.out.println("ERRO FATAL: camada de persistencia DataManager / Hibernate - " + e.getMessage());
e.printStackTrace();
aberta=false;
return e.getMessage();
}

}

4.Classe usuariohbdao com o metodo valida onde esta ocorrendo o erro.
public int valida(String login, String pwd){
int cod = 0;
try {
Query select = session.createQuery(“select cdUsuario from USUARIO where nmUsuario=:login and dsPassword=:pwd”);
select.setString(“login”,login);
select.setString(“pwd”,pwd);
List usuario = select.list();
cod = (Integer.parseInt(usuario.get(0).toString()));
} catch (HibernateException ex) {
ex.printStackTrace();
} finally {
try {
close();
} catch (HibernateException ex) {
ex.printStackTrace();
}
}

    if (cod > 0 ){
        return cod;
    }else{
        return 0;
    }
    
    
}

Você poderia detalhar melhor o problema?
Mas eu acho que o NullPointer é porque sua session não está instanciada. Pelo que entendi voce abre a session e um método e usa ela em outro.
Eu acho que dar um buildSessionFactory a cada transação não é a melhor maneira de se utilziar o hibernate não por esse objeto SessionFactory é muito caro de ser construido.
Tente esses links

http://www.guj.com.br/java.artigo.125.1.guj
http://www.javafree.org/javabb/viewtopic.jbb?t=3721
http://www.jeebrasil.com.br/tags/hibernate (MUITO BOM)

:frowning: Obrigado pelas dicas , mais o problema continua.Eu criei as seguintes variaveis de instancia :

public class UsuarioHbDao {
private static UsuarioHbDao instance = new UsuarioHbDao();
protected URL url ;
protected Configuration cfg ;
protected SessionFactory sf ;
protected Session session ;
private boolean aberta;

De modo que eu posso usar a session de qualquer metodo da classe , mais fiz um teste das 2 formas ou seja criando a session dentro do metodo o erro é o mesmo.
meu problema é o seguinte :
Tenho um tela onde o usuario informa login e senha e clicka no botão enviar,no click botão enviar é executado um servlet que instancia uma classe dao(UsuarioHBdao) e executa o metodo valida passando como parâmetro login e senha neste momento ocorre o erro :

java.lang.NullPointerException
br.persistencia.UsuarioHbDao.valida(UsuarioHbDao.java:116)
br.servlets.Controlador.doPost(Controlador.java:113)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)