Java 无法在tomcat webapps中加载Jar文件

Java 无法在tomcat webapps中加载Jar文件,java,jar,tomcat7,maven-3,Java,Jar,Tomcat7,Maven 3,这就是我在尝试将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 但是jav

这就是我在尝试将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
但是javax.servlet-api-3.0.1.jar在WEB-INF\lib中 谢谢

信息:validateJarFile(D:\Softwares\tomcat\apache-tomcat-7.0.50\webapps\myWebApp\u1\WEB-INF\lib\javax.servlet-api-3.0.1.jar)-未加载jar

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

简单的解决方案:如果您正在使用maven,请在pom.xml中将其范围设置为
提供的
,maven将不会将其放置在项目的WEB-INF/lib中。差不多

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

javax.servlet
servlet api
3
假如

Saif asif的精确解释

我使用gradle作为构建工具。排除tomcat默认提供的tomcat-servlet-api.jar对我来说很有用

您需要知道哪个依赖项正在向war中过渡地添加tomcat-servlet-api.jar,然后使用以下命令将其排除

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

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

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


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

如果我没有使用maven(Eclipse+终端启动的Tomcat),该怎么办?如果您没有使用maven,那么您必须将
servlet api
jar打包到war的WEB-INF/lib文件夹中。检查lib文件夹以验证它是否存在,并将其删除。这很有帮助,谢谢,但我发现,在从SVN导入我的项目时,我可以看到我的项目依赖项中的Apache CXF有一个
geronimo-servlet\u 3.0\u spec-1.0.jar
依赖项,它被打包到我的
.war
目录中。你知道如何从那里删除它吗?我记不起我在使用cxf时是否收到过此警告,但是你是否也在tomcat日志中收到了针对此特定“geronimo-servlet_3.0_spec-1.0.jar”的
jar未加载
警告?如果是,您始终可以选择解包cxf jar并从中删除servlet_spec jar,然后重新打包。完成!可能重复的