tomcat输出servlet-api.jar - jar not loaded 解决办法

tomcat输出servlet-api.jar - jar not loaded 解决办法

启动tomcat后,控制台输出信息:WEB-INF/lib/servlet-api.jar not loaded 解决办法
INFO: Starting Servlet Engine: Apache Tomcat/7.0.54
Dec 26, 2016 1:08:07 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/home/www/xxx/WEB-INF/lib/servlet-api-2.3.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class

在tomcat/common/lib/中放入了servlet-api.jar包,将项目的web-inf/lib下的servlet-api-2.3.jar删掉,保证tomcat/common/lib/和WEB-INF/lib这两个目录下的jar没有重复的,问题解决。
经测试如果删掉tomcat/common/lib/中的servlet-api.jar包无法正常启动。
tomcat 启动后先将tomcat/common/lib目录下的jar包全部读入内存,如果webapps目录里的应用程序中WEB-INF/lib目录下有相同的包,将无法加载,估计不同版本的包之间也会造成类似问题。

maven打包编译的时候可以把这个jar包排除掉:
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
pom配置里面去掉上面部分

另:不是maven打包编译可以在war包里用解压缩文件打开,直接删掉这个jar包

 

posted @   大自然的流风  阅读(47575)  评论(3编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2011-12-26 android学习资料收集整理
点击右上角即可分享
微信分享提示