tomcat5.5 下,按照教程过滤器实现时,配置web.xml,起先tomcat好用,又增加第二个过滤器配置时,服务器崩溃,报错
严重: Error filterStart
严重: Context startup failed due to previous errors
错误,所属项目也就启动不了,web。xml配置为 :
<filter>
<filter-name>login</filter-name>
<filter-class>com.suihr.servlet.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>login</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>char</filter-name>
<filter-class>com.suihr.servlet.filter.CharFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>char</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
百思不得其解,问题出在哪里。
在google搜索,有人提出这么几个解决方案:
1、试着把tomat/server/lib目录下的commons-digester.jar,commons-beanutils.jar拷贝到common/lib/目录 --经测试不行,tomcat5.5对应目录下根本没有对应的包。
2、有个文章说tomcat里的bug,没有实现javax.servlet.Filter的Filter会报这样的错误,看来tomcat在启动就初始化Filter实例,但是在filter中又没有看到那段代码没有实现Filter,或者有代码在启动时没有实例化。--没发现问题。
****************************************
问题解决了,将web.xml文件中filter配置删除重新写了一遍,然后将tomcat\common\lib\下的servlet-api.jar拷贝到tomcat\server\lib下,重新启动后就好了,也不知道与这个包有没有关系!
摘录总结下:
1、如果以后出现tomcat 严重: Error filterStart 错误,一般原因为:1、xml配置失误 2、filter中某段代码未实例化(这个情况是出现最多的,要仔细检查) 3、试着把tomat/server/lib目录下的commons-digester.jar,commons-beanutils.jar拷贝到common/lib/目录,有些包在部署是没有被包含
2、
开始我就是为啦图个方便,把 Struts2 的类库下面的所有 JAR包都加啦进来,想加些新的功能进去,发现程序运行不了啦,前几天是可以运行的,但是看啦看Showcase那个自带的例子,也是有这么多JAR包呀,
怎么想都想不通,后来就直接用那个空白例子来做下实验,才发现,原来如果你不需要Strut2的LIB下面的那些插件包的话,最好不要加进去,一加进去某些插件包的话就会出错,并且tomcat下的日志也写得不怎么清楚,
我个人是这样认为的,如果你把某些插件包放去WEB下面的LIB下的话,他会自动加载,并且还会去查找看你的web.xml里面有没有这个插件包那个最主要的支持类和初始化参数。
最后得出一个经常,要那个JAR包就用那个,以后也不会为啦图方便一起加近去啦,遇到这种问题,真的是很晕的,不过觉得这点2.0是做得不太好,为什么放进去就一定要加载呢,唉~~~
如果我说的不对请指证,谢谢。。。这个只是我实验出来的结论
————————————————————————————————
反正只要是插件的JAR包,我都删啦,
后面要用到的我才加进去,并且要在xml中
配制它,就拿Tiles插件来说吧,我在 web.xml
加上
<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
就可以啦,具体情况你多试试,也许我们不是同样的错,只是报的错误名称一样罢啦
——————————————————————————————————————————
3、
呵呵,问题是搞定了,但是不知道原委,包也没导错,我后来是再装了一个myeclipse 6.0的,我机子上现在装了两个,一个5.5.
tomcat我机子上现两三个,一个5.028是装的,还有一个是5.5是解压版的,6.0也是解压版的,这些都是为了试才下的,全部都试了,都一样出错,后面用myeclipse6自带的tomcat运行就可以了,呵呵,现在myeclipse中还自带一个tomcat6.0,我做计是tomcat的原因,我以前的5.5可能版本不够,后下的的解压版的可能文件少了几个,因为我输入http://localhost:8080/没有出现apach的页面,虽然其他项目可以运行,本来想下个.exe安装版的,但现在还要用tomcat5.5怕现在开发的东东,到时移植出问题,所以没有弄,哎,就这样吧,先用myeclipse中自带的吧,谢谢各位呀