我已经通过使用LifecycleListener在启动时创建会话工厂的单例实例解决了该问题。
import org.apache.catalina.Lifecycle;import org.apache.catalina.LifecycleEvent;import org.apache.catalina.LifecycleListener;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class SessionFactorys implements LifecycleListener { private static SessionFactory sessionFactory; public static SessionFactory getSessionFactory() { return sessionFactory; } @Override public void lifecycleEvent(LifecycleEvent arg0) { if (Lifecycle.AFTER_START_EVENT==arg0.getType()) { sessionFactory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory(); } if (Lifecycle.BEFORE_STOP_EVENT==arg0.getType()) { sessionFactory.close(); } }}


