異常信息:
2007-5-16 10:47:42 org.apache.coyote.http11.Http11AprProtocol init
信息: Initializing Coyote HTTP/1.1 on http-9090
2007-5-16 10:47:42 org.apache.coyote.ajp.AjpAprProtocol init
信息: Initializing Coyote AJP/1.3 on ajp-8009
2007-5-16 10:47:42 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 2164 ms
2007-5-16 10:47:43 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2007-5-16 10:47:43 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/5.5.23
2007-5-16 10:47:43 org.apache.catalina.core.StandardHost start
信息: XML validation disabled
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
2007-5-16 10:47:50 org.apache.catalina.core.StandardContext start
嚴重: Error filterStart
2007-5-16 10:47:50 org.apache.catalina.core.StandardContext start
嚴重: Context [/BookManage] startup failed due to previous errors
2007-5-16 10:47:51 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2007-5-16 10:47:51 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2007-5-16 10:47:52 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2007-5-16 10:47:52 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2007-5-16 10:47:57 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(C:\Tomcat 5.5\webapps\TopHyTree\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
2007-5-16 10:48:01 org.apache.coyote.http11.Http11AprProtocol start
信息: Starting Coyote HTTP/1.1 on http-9090
2007-5-16 10:48:02 org.apache.coyote.ajp.AjpAprProtocol start
信息: Starting Coyote AJP/1.3 on ajp-8009
2007-5-16 10:48:03 org.apache.catalina.storeconfig.StoreLoader load
信息: Find registry server-registry.xml at classpath resource
2007-5-16 10:48:03 org.apache.catalina.startup.Catalina start
信息: Server startup in 20835 ms
紅色字體為出錯信息,原來以為是用Filter(過濾器或者攔截器)出錯,因為把把web.xml里的filter配置去掉,就正常起來了,在網上查找發現兩種情況:
1、運用Filte包不齊全
2、第二種情況:
google里搜索Error filterStart里有個文章說tomcat里的bug,沒有實現javax.servlet.Filter的Filter會報這樣的錯誤:
看來tomcat在啟動就初始化Filter實例了,可能是Filter里的啥東東執行出錯導致可能,看看Filter的init里用到一句
mServ = (ModuleService)WebUtils.getApplicationContext(config.getServletContext()).getBean("moduleService");
是最可能發生錯誤了,因為這里用到了spring的org.springframework.web.context.ContextLoaderServlet,如果啟動這時還沒有建立該servlet實例,務必導致獲取失敗,拋出錯誤。先屏蔽一下這句話,果真啟動正常了,修改一下代碼,將init里的這句話丟到了doFilter里面
if(mServ==null)
mServ = (ModuleService)WebUtils.getApplicationContext(filterConfig.getServletContext()).getBean("moduleService");
不過Tomcat也真是,解析web.xml的順序上還是太僵硬了。
我的出錯情況:
經仔細推敲查找發現是配置文件struts.xml配置時候action文件名錯誤
原因:tomcat啟動時會通過web.xml文件尋找struts.xml文件。又因struts2.0默認有攔截器的,所以如果這里的有錯誤信息,就會報Filter錯誤,很容易引起誤導。