最段自己在研究项目,发现一个很奇怪的现象,就是这个”could not initialize proxy - no Session“。
我已经在web.xml中加入了”openSessionInView“的过滤器,在JSP页面上是可以读取到关联对象的。可是在我登录时处理登录信息的时候报了这个错,真是无语了。
看看我的代码吧:
1、用户登录成功,发布登录事件
2、接收到登录事件,处理登录信息
3、处理授权信息,然后封装用户
4、封装用户时报错了
报错了:
有谁遇到过这样的问题呢?
最段自己在研究项目,发现一个很奇怪的现象,就是这个”could not initialize proxy - no Session“。
我已经在web.xml中加入了”openSessionInView“的过滤器,在JSP页面上是可以读取到关联对象的。可是在我登录时处理登录信息的时候报了这个错,真是无语了。
看看我的代码吧:
1、用户登录成功,发布登录事件
2、接收到登录事件,处理登录信息
3、处理授权信息,然后封装用户
4、封装用户时报错了
报错了:
有谁遇到过这样的问题呢?
解决方法一:但如果我们在hibernate用get方法就可以解决取单个对象的问题,因为get方法直接发sql语句,把我们想的数据从数据库中get出来然后放在内存中。
如果我们取单个对象可以用get方法没有问题;但是如果我们取的的对象还有关联对象时用get就有问题,因为它不会把关联的对象取出来,但如果页面上用到关联的对象时也会报no session的问题
解决方法二:用到srping的filter(要加在strutsfilter有前面,因为它也有先后顺序,有先进先出的原则)
在我们的web.xml里面加上
<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样做就是让opensession closesession全交给视图部分,最后视图部分用完了session再去关session就不会有上面的错误了