javax.servlet.jar - jar not loaded.

2011-10-18 17:03:52 org.apache.catalina.loader.WebappClassLoader validateJarFile信息: validateJarFile(D:尀tomcat_ryxunit尀webapps尀ryx_unit尀WEB-INF尀lib尀javax.servlet.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.classlog4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).log4j:WARN Please initialize the log4j system properly.2011-10-18 17:03:53 org.apache.catalina.core.StandardContext start严重: Error listenerStart2011-10-18 17:03:53 org.apache.catalina.core.StandardContext start严重: Context [/ryx_unit] startup failed due to previous errors2011-10-18 17:03:53 org.apache.catalina.core.ApplicationContext log信息: ContextListener: contextInitialized()2011-10-18 17:03:53 org.apache.catalina.core.ApplicationContext log信息: SessionListener: contextInitialized()2011-10-18 17:03:53 org.apache.coyote.http11.Http11BaseProtocol start信息: Starting Coyote HTTP/1.1 on http-80802011-10-18 17:03:53 org.apache.jk.common.ChannelSocket init信息: JK: ajp13 listening on /0.0.0.0:80092011-10-18 17:03:53 org.apache.jk.server.JkMain start信息: Jk running ID=0 time=0/31 config=null2011-10-18 17:03:53 org.apache.catalina.storeconfig.StoreLoader load信息: Find registry server-registry.xml at classpath resource2011-10-18 17:03:53 org.apache.catalina.startup.Catalina start信息: Server startup in 3266 ms
2026年09月27日 04:06
有3个网友回答
网友(1):

把那个
jsp-api.jar
servlet-api.jar
删除即可!

Details:
把 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目录下。

网友(2):

造成这种错误的原因有两个:servlet.jar包冲突、web.xml文件配置出现问题。

1、servlet.jar包冲突:把项目\WEB-INF\lib\路径下的servlet.jar删除。

2、配置文件错误: 有可能是servlet的配置名字跟页面中不一致,也有可能servlet的路径没有写对,还有可能是因为跟的顺序出现了错误,改正以上错误,重启tomcat即可。

网友(3):

是因为有多个jar包中都包含有Servlet.class,导致类对象冲突,从而jar包加载失败。