SSH框架 could not initialize proxy - no Session

本文详细介绍了在SSH框架中遇到的couldnotinitializeproxy-noSession错误及其解决方案。错误通常发生在从一个action查询完数据库后,再调用另一个action时使用已关闭的session。文章提供了一种通过配置opensessioninview过滤器来避免session关闭问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

could not initialize proxy - no Session解决

概述

这个错的触发是在SSH框架中,从一个action中查询完数据库之后去调用另外一个action查询完数据库要使用session的时候

ServletActionContext.getRequest().getSession().setAttribute("commentList", commentlist);

也就是这一句,其实压的什么数据都无所谓,主要是使用了已经关闭的session,框架不知道哪里去找,就报错了嘛,网上也有说改一下多对一的懒加载策略,但是这种方法在大数据库中,开玩笑哦,一下加出几千个对象,服务器不要咯?
所以嘛,配置了一个open session in view 的过滤器

<!-- 配置监听器解决不同action之间session关闭的问题 -->
	<filter>
		<filter-name>hibernateFilter</filter-name>
		<filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>hibernateFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

这个过滤器是放在web.xml里边,要注意的是这个玩意要配置在所有过滤器之前,要不然没啥用,我试了的,各位过年打代码快乐哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值