浏览 6757 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-12-01
依赖注入配置省了 出现的异常为:Failed to lazily initialize a collection - no session or session was closed 谢谢! QueryManager.java类 public interface QueryManager { public List find( String query ); } HibernateQueryManager.java类: public class HibernateQueryManager extends HibernateDaoSupport implements QueryManager { public List find( String query ) { return getHibernateTemplate().find( query ); } } ContactService.java public interface ContactService { public List findContactsByUser( String userName ) ; } ContactService.java的实现类ContactServiceImpl.java public class ContactServiceImpl extends BaseService implements ContactService { public List findContactsByUser( String userName ) { User user = _userService.findUserByName( userName ); String sql = "from Contact as contact where contact.fromUser.id = '" + user.getId().toString() + "' order by contact.id desc"; return qm.find( sql ); } } UserService.java public interface UserService { public User findUserByName( String name ) ; } UserService.java的实现类UserServiceImpl.java public class UsersServiceImpl extends BaseService implements UserService { public User findUserByName( String name ) { List list = qm.find( "from User where username= ? ", name ); if( list.size() > 0 ) return (User)list.get(0); return null; } } action类接受页面传递过来的数据 AlbumAction.java public class AlbumAction extends BaseAction { public ActionForward addAdmin(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String username = (String) request.getParameter("user"); User user = _userService.findUserByName( username ); request.setAttribute( "user", user ); request.setAttribute( "isOwner", isOwner( username ) ); List listFriends = _contactService.findContactsByUser(username); //跟踪调试发现listFriends.size()>=1(即是有数据的,数据可以查询出来) System.out.println("ok"); request.setAttribute("listFriends",listFriends); //在这里出现错误: Failed to lazily initialize a collection - no session or session was closed System.out.println("test"); return mapping.findForward("addAdmin"); } } 以上类之间的关系: 页面------>AlbumAction------>ContactServiceImpl---------->UserServiceImpl ---------->HibernateQueryManager 出现的异常为: javax.servlet.ServletException: Failed to lazily initialize a collection - no session or session was closed net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter.doFilter(SecurityEnforcementFilter.java:214) net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) net.sf.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:212) net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) net.sf.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:153) net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) net.sf.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:114) net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) net.sf.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:374) net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) net.sf.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:225) net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) net.sf.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:179) net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:125) dragonchant.framework.web.EncodingFilter.doFilter(EncodingFilter.java:37) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-12-02
所以没有数据,建议在service层把数据调出来,做一个dto形式的类,然后传到页面
|
|
返回顶楼 | |
发表时间:2005-12-02
我是在service层提取数据的哦!请继续指点,可以再把session给打开或其它方式吗?
|
|
返回顶楼 | |
发表时间:2005-12-02
google "open session inview"
it's better for web application |
|
返回顶楼 | |
发表时间:2005-12-02
<filter>
<filter-name>hibernateFilter</filter-name> <filter-class>org.springframework.orm.hibernate.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>*.html</url-pattern> </filter-mapping> |
|
返回顶楼 | |
发表时间:2005-12-14
“<url-pattern>*.html</url-pattern> ”
你的页面都是以html为后缀的吗? 如果不是的话,那就是这个错误了。 |
|
返回顶楼 | |