maven项目中引入了这个依赖。
1 <dependency> 2 <groupId>net.mingsoft</groupId> 3 <artifactId>shiro-freemarker-tags</artifactId> 4 <version>0.1</version> 5 </dependency>
启动项目后会报错,
错误原因:
mingsoft的shiro-freemarker-tags插件引入了javax.servlet-api包,和项目中其他依赖引入的servlet-api冲突(其实和tomcat自带的servlet-api也冲突)
解决方法:
1.把shiro-freemarker-tags.jar (理论上shiro-freemarker-tags.jar依赖的jar除了servlet-api也需要)以jar包的形式引入到项目中。
2.使用原版shiro-freemarker-tags的jar包,mingsoft的应该是在原版基础上改的,当然,原版因为年代久远,在maven中央库中是没有的,我是自己编译源码安装到本地maven库的,直接引入jar包的形式也可以。下面是我引用的本地依赖:
1 <dependency> 2 <groupId>com.jagregory</groupId> 3 <artifactId>shiro-freemarker-tags</artifactId> 4 <version>0.1-SNAPSHOT</version> 5 </dependency>
3. 最简单方便的方法。单独去掉javax.servlet-api依赖。
1 <dependency> 2 <groupId>net.mingsoft</groupId> 3 <artifactId>shiro-freemarker-tags</artifactId> 4 <version>0.1</version> 5 <exclusions> 6 <exclusion> 7 <artifactId>javax.servlet-api</artifactId> 8 <groupId>javax.servlet</groupId> 9 </exclusion> 10 </exclusions> 11 </dependency>