系统用的SSH框架,F5刷新页面的时候偶尔会报org.hibernate.SessionException: Session is closed! code=html](连续多次按刷新会报错,慢点按刷新又没有问题,报错之后再次刷新也可以刷出页面)
每次操作后session都关闭了的
session = sessionFactory.getCurrentSession();
session.beginTransaction();
......
SQLQuery query=session.createSQLQuery(sql);
session.getTransaction().commit();
org.hibernate.SessionException: Session is closed!
org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:72)
org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1347)
sun.reflect.GeneratedMethodAccessor416.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)
com.sun.proxy.$Proxy23.beginTransaction(Unknown Source)
这个报错貌似是说session已经关闭,但是我还是有beginTransaction的操作。
------解决方案--------------------
在commit之后应该关闭session
session().clear();
session().flush();
session().close() ;
------解决方案--------------------
你就是在beginTransaction中报的错,说明你getCurrentSession得到的session已经是closed的了。
------解决方案--------------------
配一下struts.xml的OpenSessionInView这个Filter看看可不可以解决。具体写法不知道了,自己google吧。到处都是。