您的位置:首页 > Web前端

failed to lazily initialize a collection of rlife.SchoolNews.NewsType no session or sessiion closed

2015-01-16 18:59 483 查看
在SSH项目中整合WebService接口时报错:failed to lazily initialize a collection of role com.edulife.SchoolNews.NewsType no session or session closed;

解决方法如下:

        1. 把一对多的lazy=true改为lazy=false(我使用的是注解,使用fetch=“fetchType.EAGER”正确,因影响性能所以未考虑此方法);

        2. 对于查询中如果用的是xxx.load(class,id)则改为xxx.get(class,id);(未测试,不清楚);

        3. 在web.xml文件中加入:

<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>              <!-- 据说<init-param>一定要加,否则可能报错。还有就是hibernateFilter的顺序有影响,hibernateFilter > actionContextCleanUp > filterDispatcher

              另外,我本人在使用此方法修改时还会报同样的错,此时将<url-pattern>*.do</url-pattern>中的 *.do 修改为 /* 即可 -->

注意:还有种多对多 / 一对多的情况,出现异常:
Caused by: com.sun.istack.SAXException2: 在对象图中检测到循环。这将产生无限深的 XML;
使用注解:@XmlTransient 注解关联的另外一方的 getter 方法,表示不生成这个对象的 Xml 文档;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  webservice ssh session
相关文章推荐