could not initialize proxy - no Session

本文详细介绍了如何在Struts框架中整合Hibernate,包括配置OpenSessionInViewFilter以解决延迟加载问题,确保在多线程环境下Action的正确实例化,以及在web.xml中正确配置过滤器。

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

  <filter>
  	<filter-name>OpenSessionInViewFilter</filter-name>
  	<filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>OpenSessionInViewFilter</filter-name>
  	<url-pattern>*.action</url-pattern>
  </filter-mapping>
  <!-- 配置核心过滤器 -->
  <filter>
  	<filter-name>struts</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
  

检查是否配置延迟加载过滤器,(同时需要注意延迟加载过滤器需要在struts核心过滤器之前,否则表级联的数据无法加载)配置完该过滤器后, 会将lazy 设置为false,同时为request绑定一个session 使该请求 使用的都是同一个session,在做 增删改的时候才能正常运行而不报错

<bean id="baseDictAction" class="com.kkgs.crm.web.action.BaseDictAction" scope="prototype">
		<property name="baseDictService" ref="baseDictService"></property>
	</bean>
	

同时需要将Action 设置为多例模式,在这里Action默认为单例模式,在多线程中就会造成数据的混乱,各各线程共用一个Action数据就会出现问题,所以这里需要将Action设置为多例模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值