问题描述
<filter> <filter-name>UserValidateFilter</filter-name> <filter-class>com.fuhe.yjh1104.util.UserValidateFilter</filter-class> </filter> <filter> <filter-name>hibernateFilter</filter-name> <filter-class> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </filter-class> </filter> <filter-mapping> <filter-name>UserValidateFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>hibernateFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <listener> <listener-class>com.fuhe.yjh1104.framework.ContextStartListener</listener-class> </listener> <listener> <listener-class>com.fuhe.yjh1104.util.SessionCounter</listener-class> </listener> 在没有配置hibernateFilter 的时候这个配置是正确的,配置了之后就出现找不到listner ContextStartListener 了 出现了这个异常 java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered? 这个listner 也相当的简单,就是找不到了,郁闷得很 package com.fuhe.yjh1104.framework; import javax.*; public class ContextStartListener extends HttpServlet implements ServletContextListener { public void contextInitialized(ServletContextEvent arg0) { System.out.println("监听服务启动"); new TimeThread().start(); } public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub } } 请问各位高手这个是怎么回事啊? 宁外 openSessionInViewInterceptor 这个东西有是怎么配的? 望高手顺便说说.
解决方案
应该还要在 web.xml 中加一个监听器:<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>ContextLoaderListener是spring中提供的,用来加载context的xml文件。
解决方案二:
可能是资源文件没加载进来找不到文件引起的,可以在 web.xml 中加入了大概如下语句加载资源文件试试:<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/**/*.xml</param-value> </context-param>classpath是你的资源文件的位置。
解决方案三:
<listener><listener-class>org.springframework.web.context.ContextLoaderListe ner</listener-class></listener>
解决方案四:
这个listener是spring的listener,不是你写的这个listener