SERVER Error filterStart的错误解决方式总结:
在此之前一直都是maven编译中的pom.xml文件的错误,首先记录一下这个错误:
[ERROR] Failed to execute goalorg.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-
compile) on project bugmanagerbasic: Unableto parse configuration of mojo
org.apache.maven.plugins:maven-compiler-plugin:3.1:compile:Basic element 'encoding' must not
contain child elements -> [Help 1]
由于我的项目是使用的maven多模块开发的,有四个pom.xml但是报错的模块中没有encoding标签,但是在父pom.xml中有,发现<encoding><UTF-8></UTF-8></encoding>,很明显报错信息说明,该<encoding>模块下没有子元素,所以这个写法是错误的,其实我也不知道怎么回事,好像没这么写过。
第二个,出错的根源在web.xml中的过滤器和监听器对象中,如果除了过滤器还有其他的包没有引入的话就会报错,这个可以归为tomcat的错,实质上是由于web容器中的对象没有创建而导致服务器启动出错。
网上有这样的解决方式:
1. java版本和对应的javac版本一致,在命令行下java–version, javac –version ,可以分别查看相关信息。
2. JDK的版本要至少支持所用的框架和工具。
3. 注释web.xml中的所有filter,然后重新启动,会发现错误的根源的,当然我的没有发现。一般是少包。
4. 注意<listerner>标签中的监听器对象在框架中被实例化,或者自定义监听器被实例化。
5. 将tomcat目录下的work目录和webapp下的项目删除,还可以查看logs中的错误,定位bug.
6. 当然这个跟4是一样的结果就是<filter>中的对象也要实例化。
我的是第4个异常,因为我在web.xml中添加了shiro的权限验证监听器,但是我在spring-mvc.xml中没有配置bean,导致spring没有实例化shiro,进而没有shiro的监听器对象。所以报错。