Jar文件无法在tomcat webapps中加载

这是我尝试将maven项目部署到tomcat时遇到的错误mvn tomcat7:deploy错误: INFO:validateJarFile(D:\ Softwares \ tomcat \ apache-tomcat-7.0.50 \ webapps \ myWebApp_ 1 \ WEB-INF \ lib \ javax.servlet-api-3.0.1.jar) – jar未加载。 请参阅Servlet规范3. 0,第10.7.2节。 违规类:javax / servlet / Servlet.class

但是WEB-INF \ lib中的javax.servlet-api-3.0.1.jar谢谢

INFO:validateJarFile(D:\ Softwares \ tomcat \ apache-tomcat-7.0.50 \ webapps \ myWebApp_ 1 \ WEB-INF \ lib \ javax.servlet-api-3.0.1.jar) – jar未加载

Servlet3.0已经与其lib文件夹中的tomcat一起提供,默认情况下,tomcat将始终加载存在于其中的servlet jar。 这就是为什么你得到tomcat没有在你的项目中加载jar的警告。

简单的解决方案:如果您正在使用maven,请将其范围provided为pom.xml中provided范围,并且maven不会将其放在项目的WEB-INF / lib中。 就像是

  javax.servlet servlet-api 3.0 provided  

Saif asif的精确解释。

我使用gradle作为构建工具。 它对我有用,可以排除tomcat提供的tomcat-servlet-api.jar。

您需要知道哪个依赖项正在将warcat-servlet-api.jar传递给war,然后使用以下内容将其排除

  compile ('your dependency goes here') { exclude module:'tomcat-servlet-api' } 

这只是您的日志中出现的警告,而不是错误。 如果忽略此项,您的项目仍会部署。

您可以通过使用maven重建.war并将其复制到\ webapps \删除旧文件来摆脱此错误。

最佳解决方案:从lib中删除该jar(即javax.servlet-api-3.0.1.jar)