Hakan: Sessionhandling in Hibernate

Beitrag lesen

Hallo Leute,

1. Problem:

nun mal eine grundlegende Frage bzgl. Session Handling mit Hibernate.

Ich benutze in meiner Anwendung Hibernate und bentuze die folgende Klasse, dass ich in einem Tutorial gefunden habe:

public class HibernateUtil {
  private static SessionFactory sessionFactory;

// disable contructor to guaranty a single instance
  private HibernateUtil() {
  }

static{
    try {
      // SessionFactroy erstellen aus hibernate.cfg.xml
      sessionFactory =
        new Configuration().configure().buildSessionFactory();

} catch (Throwable ex) {
// Exception loggen
System.err.println("Initial SessionFactory creation failed: "+ex);
throw new ExceptionInInitializerError(ex);
    }
  }

public static SessionFactory getSessionFactory(){
    return sessionFactory;
  }

public static void close(){
    if (sessionFactory != null)
      sessionFactory.close();

sessionFactory = null;
  }

public static Session getSession(){
    // Transaktion beginnen und Session erstellen
    Session session =
         HibernateUtil.getSessionFactory().getCurrentSession();

if(!session.getTransaction().isActive()){
      session.beginTransaction();
    }

return session;
  }

}

Mein Problem nun....
Sobald ich mein UserCheck beim Login mache, funktioniert alles wunderbar. Ich bekomme eine Session und arbeite damit.

Dann logge ich mich aus und die Methode close() aus der oberen Klasse wird ausgeführt. Auch wunderbar!

Nun gehe ich wieder auf der Loginmaske (ohne den WebSerer neu zu starten) und logge mich wieder ein und siehe da.....ich habe keine Session mehr und kann UserCheck nicht ausführen.

Wie geht man damit vernünftig um?
Muss zugeben, was Sessionhandling angeht bin ich noch relativ ein newbie.

Bin also für jede Info und Infoseite dankbar (auch gerne englische Seiten!)

2. Problem:

Wenn man bei mir auf Logout klickt, gelangt man auf die folgende Bean-Methode:

public String doLogout(){
  HibernateUtil.close();
  userClass = null;
  return "./index.html?faces-redirect=true";
}

Aber irgendwie gelang ich nicht auf die index.html (der Pfad stimmt!) Es wird überhaupt keine neue Seite geladen. Keine Fehlermeldung, garnichts! Aber debuggen kann ich...wie gesagt, läuft alles durch, aber ohne Weiterleitung...warum????

Danke für die Antworten!

Gruß, Hakan