tomcat启动时报
java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String;
一般来说,就是项目jar包不支持servlet3.0规范。需要正确引用支持规范的servlet-api.jar。一个比较笨的方法是,在高版本的tomcat找这个jar包。
我这个报错的完整信息是
信息: validateJarFile(xxxxxxxxxxxxxxxxxxxxx\WebContent\WEB-INF\lib\servlet-api-2.4.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
七月 12, 2018 10:26:40 上午 org.apache.catalina.startup.HostConfig deployDescriptor
严重: Error deploying configuration descriptor dingding.xml
java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String;
问题出在引用失败。因为我在项目lib目录中也引用了servlet-api-2.4.jar。重复引用会导致失败。把tomcat中的servlet-api-2.4.jar删掉就好了。
经常出的bug,在此记录。