今天在eclipse中加入了tomcat支持,在eclipse中打开web项目出现错误提示缺少servlet-api.jar于是随便找了个servlet-api.jar加入到plugin中,再在eclipse中将包加到web项目中,错误消失了,然而在我启动Tomcat服务时又报java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String
,查网页才知道:
1. javax.servlet.ServletContext为servlet-api.jar内的类,通过反编译,发现Tomcat 6.0以前的版本的servlet-api.jar内的ServletContext类没有getContextPath()方法,而新的Tomcat 6.0及以后版本有这个方法,而且server 启动时需要调用这个方法
Tomcat 6.0 before | public interface ServletContext { } |
Tomcat 6.0 later | public interface ServletContext { } |
所有错误原因是Tomcat 6.0启动的时候错调用了别的版本的servlet-api.jar
解决方法是在将现在使用的servlet-api.jar换成tomcat的lib下的servlet-api.jar后重新启动tomcat就OK了。