天天看點

Tomcat的Error filterStart錯誤

郁悶,好好的項目在resin下跑得溜溜的,裝了個tomcat5.0,搬過來部署一下居然,啟動不了服務,報錯:

2005-5-13 14:50:46 org.apache.catalina.core.StandardContext start

嚴重: Error filterStart

2005-5-13 14:50:46 org.apache.catalina.core.StandardContext start

嚴重: Context startup failed due to previous errors

查來查去,把web.xml裡的filter配置去掉,就正常起來了,可是我的filter咋辦呢,難道tomcat對filter的支援有問題?照理不應該啊,filter也不算是新東東咯

[@more@]

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");

問題搞定:D

不過Tomcat也真是,解析web.xml的順序上還是太僵硬了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/67736/viewspace-798316/,如需轉載,請注明出處,否則将追究法律責任。

轉載于:http://blog.itpub.net/67736/viewspace-798316/