maven tomcat7:run 启动报错 loader (instance of org/apache/catalina/loader/WebappClassLoader) previously

当用maven指令直接启动tomcat时,出现如下错误:maven tomcat7:run 启动报错 loader (instance of org/apache/catalina/loader/WebappClassLoader) previously

经过多次尝试终于解决:

出错的原因:

javax.servlet这个jar包冲突(每个web容器都会提供这样一个名为javax.servlet.jar的jar包)

检查项目的依赖树,发现json-lib-ext-spring 都有对javax.servelt 的依赖(通过pom.xml的Dependency HIdrarchy查看):

maven tomcat7:run 启动报错 loader (instance of org/apache/catalina/loader/WebappClassLoader) previously

然后在pom.xml中找到json-lib-ext-spring,添加红框所示内容以排除这些依赖:

maven tomcat7:run 启动报错 loader (instance of org/apache/catalina/loader/WebappClassLoader) previously

maven tomcat7:run 启动报错 loader (instance of org/apache/catalina/loader/WebappClassLoader) previously

然后install项目,启动成功!