Eclipse+tomcat部署JFinal是启动tomcat时报JFinalFilter cannot be cast to javax.servlet.Filter

先说一下依赖范围:

Provided:部署到Tomcat的时候,就不需要了。

Compile:默认的依赖范围,运行部署到Tomcat不需要的

 

如果将Servlet-api.jar设置为默认的compile,打包后就包含一个servlet-api.jar,部署到Tomcat后就会与Tomcat下边的servlet-api.jar冲突,导致运行失败。

Eclipse+tomcat部署JFinal是启动tomcat时报JFinalFilter cannot be cast to javax.servlet.Filter

这个是因为tomcat启动的时候本身那个服务器里面是有servlet-api这个jar 包的,如果你在你的工程中再次加入的话,会引起冲突,用maven解决有两种办法

1.在选择jar包的时候,设置为provided,会在打war包的时候,不会再将其打进包

Eclipse+tomcat部署JFinal是启动tomcat时报JFinalFilter cannot be cast to javax.servlet.Filter

也可以在导入jar 包后再设置:

Eclipse+tomcat部署JFinal是启动tomcat时报JFinalFilter cannot be cast to javax.servlet.Filter

2.是因为tomcat服务器中和你发布的项目中都存在servlet-api.jar这个jar包,jar包冲突了,把项目在部署到tomcat服务器之前删掉就好了,这个时候编译报错,发布完后再加入就不会报错了,但是在使用jetty启动时是需要这个jar包的。