今天第一次使用tomcat7,启动时报错如下:
java.lang.NoSuchMethodError: javax.servlet.ServletContext.getSessionCookieConfig()Ljavax/servlet/SessionCookieConfig
网上搜了一下,问题出在servlet-api.jar上
解决方法:
1)把 $TOMCAT_7/lib/servlet-api.jar 拷贝到$JAVA_HOME/jre/lib/ext目录下去,比如我的是拷贝到E:\soft\Java\jdk1.6.0_29\jre\lib\ext下;
2)删除$JAVA_HOME/jre/lib/ext目录下的servlet-api.jar
重新启动,ok!
原因:tomcat7在运行的时候,如果$JAVA_HOME/jre/lib/ext目录下已经存在servlet-api.jar,则tomcat使用的不是自己lib下面的那个servlet-api,而是首选使用java目录下的(jdk1.6.0_10\jre\lib\ext);如果java目录下的api版本太低就会出现上述问题,此时只要把java目录下的servlet-api.jar替换成tomcat7自带的或直接删掉即可。
参考:http://blog.sina.com.cn/s/blog_63a74b750100qza3.html