关于Person_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy异常,hibernate的懒加载异常

java.lang.ClassCastException: cn.s2sh.integration.domain.Person_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy

两种可能:

1.懒加载

             hibernate懒加载异常,load方法是使用懒加载的所以在页面获取对象的时候,sessionFactory已经关闭了,要配置一个过滤器解决问题,在web.xml中配置,一定要配置在struts2的过滤器前面,可以参考filter的finally执行的顺序,如果配置在他的后面则没什么作用,配置在前面当org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter执行完后页面就会出来,页面加载完后sessionFactory关闭(执行strus2过滤器中finally方法),这时候取数据就会懒加载异常,配置org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter后session的结束时间就延长可

         <!-- spring用于解决懒加载问题的过滤器 -->
      <filter>
        <filter-name>OpenSessionInViewFilter</filter-name>
        <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>OpenSessionInViewFilter</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>

2.如果配置完后还没有解决那么就是包冲突了hibernate和strus都有javassist-XX.jar这个包只需要导入一个就可以了,去除其中一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值