我没有
javax.servlet-3.0.1.jar在类路径中添加任何理由。由于您使用的是Eclipse来构建/运行您的应用程序,因此当您将tomcat或任何服务器作为运行时环境添加到您的项目时,这些lib依赖项将自动添加到class-
path.Simple从项目的lib文件夹中删除此jar。也可能有其他原因。
- javax.servlet-3.0.1.jar已添加为运行时库(在.WAR中),并且仅在构建时需要。
- 从WEB-INF / lib中删除jar,然后更新您的构建脚本以指向新位置。
在引用Servlet Spec 2.3第9.7.2节时说,Servlet容器(例如Tomcat)将提供J2EE规范的实现类。您的WEB-INF /
lib目录中的j2ee.jar(在我们的情况下为servlet-
api.jar?)试图提供相同的信息。具有特定于应用程序的实现是规范2.3和Tomcat所不允许的稳定性和安全性问题。
简而言之,从您的lib文件夹中删除javax.servlet-3.0.1.jar,然后让容器负责为您提供这些依赖项。
要声明容器通过maven提供的依赖关系,请将范围设置为“提供”,这是pom.xml中条目外观的示例:
<dependency> <groupId>javax</groupId> <artifactId>javaee-web-api</artifactId> <version>6.0</version> <scope>provided</scope> </dependency>



