Tomcat8启动报错: java.lang.NoSuchMethodError:javax.servlet.ServletContext.getClassLoader
在网上搜索后,发现此类问题大都是servlet-api.jar版本不一致导致,但是 从apache重新下载 启动tomcat8 还是报这个错。
原来是 刚刚在命令行javac下测试application级别的servlet,从tomcat lib库拷贝servlet-api-2.5.jar到%JRE%libext下(JDK 引入第三方JAR文件都放在此目录下),注意这个jar不是tomcat8,而是旧版本的。
Tomcat启动是需要从%JAVA_HOME%和%JRE_HOME%读jar文件,而且从优先顺序下,JRE库是先于Tomcat自己的lib目录。删除掉%JRE%libext下的servlet-api.jar文件,并再拷贝Tomcat8自己的servlet-api.jar。
问题解决。