java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String;

nayi_224發表於2018-07-12

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,在此記錄。

相關文章