报错如下:
<span style="font-size:18px;">HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.hibernate.LazyInitializationException:</span><span style="font-size:24px;color:#ff0000;"> failed to lazily initialize a collection of role: entity.Dept.emp, no session or session was closed</span><span style="font-size:18px;">
org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)
org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:343)
org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
org.hibernate.collection.PersistentSet.toString(PersistentSet.java:309)
java.lang.String.valueOf(String.java:2826)
java.io.PrintStream.println(PrintStream.java:771)
org.apache.tomcat.util.log.SystemLogHandler.println(SystemLogHandler.java:242)
action.LoginAction.find(LoginAction.java:59)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)</span>
原因可能如下:session查出来代理对象,或者启用了延迟加载lazy; 等用到其他对象的时候,session已经被关闭,所以报错
<span style="font-size:24px;color:#ff0000;">no session or session was closed</span>
<span style="font-size: 24px;"><span style="color:#ff0000;">解决办法:</span></span><pre name="code" class="html" style="color: rgb(255, 0, 0);"><!-- OpenSessionInViewFilter过滤器需要配置在Struts2框架过滤器前面,否则不起作用。 -->
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<span style="color:#ff0000;"><!-- 注意绿色部分hibernate的版本号-->
<filter-class>org.springframework.</span><span style="color:#33ff33;">orm.hibernate3.su</span><span style="color:#ff0000;">pport.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</span>