servlet-api.jar not loaded

启动tomcat后,控制台输出信息:WEB-INF/lib/servlet-api.jar not loaded. See Servlet Spec 2.3, section 9.7.2。网上提供的方法一般是:保证WEB-INF/lib跟tomcat6.0 lib下的JAR包与项目的web-inf/lib没有重复的包即可。所以,将项目的web-inf/lib下的servlet-api.jar删掉就OK了。

      但是,如果项目中存在使用servlet-api.jar的类怎么办呢?删掉servlet-api.jar,源程序无法编译。这时,有另一个办法可以解决这样的冲突问题:把Tomcat6.0t的lib目录下的名为servlet-api.jar的包拷贝至你的java安装目录下jre/lib/ext下就可以了。在myeclipse7.0中再次启动tomcat6.0就不会再出现前面的输出信息了。

<really ?! >

其实,对于两者的包冲突问题,都可以采用类似的方法来解决。

<really ?! >

经过自己的证实,上面的解决方案不成功,

另外:

把 webapps\maintenance\WEB-INF\lib\ 
下面的 servlet-api.jar 删掉吧! tomcat自己有,不需要你提供! 
顺便看看其他的jar, 和 tomcat\lib 目录比较一下,tomcat已经有的,就别留着了!

 

这才想起,我在tomcat/common/lib/中也放入了j2ee.jar等包,去common/lib中处不必要的包后,保证tomcat/common/lib/和WEB-INF/lib这两个目录下的jar没有重复的,问题解决。
原来,tomcat 启动后先将tomcat/common/lib目录下的jar包全部读入内存,如果webapps目录里的应用程序中WEB-INF/lib目录下有相同的包,将无法加载,估计不同版本的包之间也会造成类似问题。因此建议尽量不要把jar包放入tomcat/common/lib目录下,应该放入WEB- INF/lib目录下。

你可能感兴趣的:(tomcat,Web,servlet,ext)