Hi Hazem,
I have implemented as per your suggestion using a single PL.

The PL is registered in facesConfig.xml and the hibernateconfig file has

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

still I am getting

 "org.hibernate.LazyInitializationException: could not initialize proxy - no
Session" error

Any clues ?
==========================================
=========================================
public class RestoreViewPhaseListener implements PhaseListener {

 public void beforePhase(PhaseEvent event) {
         SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
         sessionFactory.getCurrentSession().beginTransaction();

}

public void afterPhase(PhaseEvent event) {
        SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
        try {
            sessionFactory.getCurrentSession().getTransaction().commit();
        } catch (Throwable ex) {

          // very bad error here, occured...
          if (sessionFactory.getCurrentSession().
              getTransaction().isActive()) {
                  sessionFactory.getCurrentSession().
                  getTransaction().rollback();
          }
        }
}

public PhaseId getPhaseId() {
        return PhaseId.INVOKE_APPLICATION;

}
}

=========================
HibernateUtil.java
==========================
public class HibernateUtil {
    private static final SessionFactory sessionFactory;

    static {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            sessionFactory = new
Configuration().configure().buildSessionFactory();

        } catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." +
ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }

}


Can you tell me if I am missing anything here?

Thank you.

Regards
Ayub

On Thu, Sep 11, 2008 at 9:45 PM, Hazem Saleh <[EMAIL PROTECTED]> wrote:

> Hi Ayub,
>
> I tried this code before and it worked fine.
> You should check your hibernate configuration, and make sure that:
> 1. You are registered your PLs.
> 2. <property name="current_session_context_class">thread</property>.
>
> Another better idea, I got later, you can use only one PL on the
> (INVOKE_APPLICATION) phase to implement the OSPVP.
>
> Thank you.
>
>
> On Thu, Sep 11, 2008 at 11:22 AM, Ayub Khan <[EMAIL PROTECTED]> wrote:
>
>> Hi,
>> I have impleted the phaseListener using the idea presented on
>> http://www.jroller.com/HazemBlog/entry/implementing_hibernate_open_session_per
>>
>> I am getting "org.hibernate.HibernateException: createQuery is not valid
>> without active transaction" error message.
>>
>> Below is the code of phase listeners:
>>
>> public class RestoreViewPhaseListener implements PhaseListener {
>>
>>   public void afterPhase(PhaseEvent event) {
>>   }
>>
>>   public void beforePhase(PhaseEvent event) {
>> SessionFactory sessionFactory =
>>
>>               HibernateUtil.getSessionFactory();
>> sessionFactory.getCurrentSession().beginTransaction();
>>
>>
>>   }
>>
>>   public PhaseId getPhaseId() {
>>     return PhaseId.RESTORE_VIEW;
>>   }
>>
>> }
>>
>> Please let me where to open and close session and transaction.
>>
>> Thanks
>> Ayub
>>
>>
>>
>> --
>> -- "Two roads diverged in a wood
>> And I took the one less traveled by
>> And that has made all the difference.
>>
>> Robert Frost....."
>>
>
>
>
> --
> Hazem Ahmed Saleh Ahmed
>
> Web blog: http://www.jroller.com/page/HazemBlog
>
> [Web 2.0] GMaps Integration with JSF + Apache Tomahawk + JBoss a4j:
> http://code.google.com/p/gmaps4jsf/
>



-- 
-- "Two roads diverged in a wood
And I took the one less traveled by
And that has made all the difference.

Robert Frost....."

Reply via email to