首页 文章

Jar文件无法在tomcat webapps中加载

提问于
浏览
23

这是我尝试将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 not loaded. See Servlet Spec 3. 0, section 10.7.2. Offending class: javax/servlet/Servlet.class

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

4 回答

  • 46

    Saif asif的精确解释 .

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

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

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

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

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

  • 1

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

  • 2

    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,请在pom.xml中将其范围设置为 provided ,maven不会将其放在项目的WEB-INF / lib中 . 就像是

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>3.0</version>
        <scope>provided</scope>
    </dependency>
    

相关问题