项目遇到OpenSessionInViewFilter的默认sessionFactoryBeanName的问题

Tomcat启动时候不报任何异常,然而一访问项目就报"No bean named 'sessionFactory'" 异常。

 

上网查询了一下,发现是在web.xml 配置的 opensessenionInViewFilter引起的,最重要是我在applicationContext-common.xml配置文件中将sessionFactory的名字给修改了下,一般默认我们是使用“sessionFactory”,在配置多数据源的时候我修改了这个名字,所以就引发了这个错误,那在web.xml中配置的 opensessenionInViewFilter 默认使用sessionFactory这个名字,现在改了名字,故也应该把修改后的名字告诉一下 opensessenionInViewFilter 。

 

如:

 

 

OpenSessionInViewFile过滤器的作用:

 Hibernater允许对关联对象、属性进行延迟加载,但是必须保证延迟加载的操作限制的同一个Hibernate Session范围内之间进行,

如果Service层返回一个启用了延迟加载功能的领域对象给Web层,当Web层访问到那些需要延迟加载的数据时,由于加载领域

对象的Hibernate Session已经关闭,这是就会报数据对象懒加载异常! 

 

posted @ 2010-11-14 13:49  dcz1001  阅读(191)  评论(0编辑  收藏  举报