最近在搞一个ssm+shiro的整合 用的maven tomcat插件 启动的时候报错,提示
maven org.springframework.web.filter.CharacterEncodingFilter cannot be cast to javax.servlet.Filter
网上查找资料后说是jar包冲突,写了一个测试类
import java.net.URL; import javax.servlet.Filter; public class zzzz { public static void main(String[] args) { URL url = Filter.class.getProtectionDomain().getCodeSource().getLocation(); System.out.println("path:"+url.getPath()+" name:"+url.getFile()); } }
发现时javax-servlet-api jar冲突
查看maven 依赖如下图
发现 freemaker的标签jar引用啦servlet 于是将其排除,问题解决。
<dependency> <groupId>net.mingsoft</groupId> <artifactId>shiro-freemarker-tags</artifactId> <version>0.1</version> <scope>provided</scope> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> </exclusions> </dependency>
ps:问题发生不要一味百度,仔细看可能答案就在你眼前