关闭

使用OpenSessionInViewFilter 发生异常: No bean named 'sessionFactory

标签: beanspringapplicationinitializationfiltersession
499人阅读 评论(0) 收藏 举报
分类:


问题描述:使用OpenSessionInViewFilter解决Session is closed 的问题


web.xml配置

<!--配置OpenSessionInViewFilter解决Session关闭的问题-->
<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


解决方案:

1.首先看tomcat启动是否发生异常,如发生,可能是读取spring的配置问题出了问题,查看控制台的信息判断。

2.如果tomcat启动正常,但是发出请求访问的时候报这个错。一般就是你spring里配置的SessionFactory出错啦!

api文档里已有说明:

Looks up the SessionFactory in Spring's root web application context. Supports a "sessionFactoryBeanName" filter init-param in web.xml; the default bean name is "sessionFactory". Looks up the SessionFactory on each request, to avoid initialization order issues (when using ContextLoaderServlet, the root application context will get initialized after this filter).

web.xml里面配置OpenSessionInViewFilter的时候要指定SessionFactory的名字。 如果spring里配置的SessionFactory名字为sessionFactory则此处就不必提供参数啦,

它的默认值就是sessionFactory。

  1. <filter>  
  2.     <filter-name>OpenSessionInViewFilter</filter-name>   
  3.     <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>  
  4.     <init-param>  
  5.         <param-name>sessionFactoryBeanName</param-name>  
  6.         <param-value>mySessionFactory</param-value>  
  7.     </init-param>  
  8. </filter>  
  9. <filter-mapping>  
  10.     <filter-name>OpenSessionInViewFilter</filter-name>  
  11.     <url-pattern>/*</url-pattern>  
  12. </filter-mapping>  


最后发现还真是sessionFactory的名字不一致所导致的。  以后要细心点。。。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:205451次
    • 积分:3230
    • 等级:
    • 排名:第10550名
    • 原创:107篇
    • 转载:83篇
    • 译文:0篇
    • 评论:31条
    文章分类
    最新评论