- failed to lazily initialize a collection of XXX, no session or session was closed
- org.hibernate.LazyInitializationException: failed to lazily initialize a collection of XXX, no session or session was closed
- org.apache.struts2.json.JSONException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of XXX, no session or session was closed
解决方法是在web.xml中加入
<filter>
<filter-name>openSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>openSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我用的Hibernate是4,如果是3则写3就行了。 但是这个filter必须要放在struts2filter之前。