罐子没有加载。请参阅 Servlet 规范 2.3,第 9.7.2 节。有问题的类:javax/servlet/Servlet.class

新手上路,请多包涵

我正在运行一个 Maven 项目,它也是一个动态 Web 项目。我在 Maven 中使用了所有 Spring 库。我创建了 web.xml ,但是当我启动 Tomcat 7 服务器时,我收到以下消息:

 INFO: validateJarFile(C:\Users\mibvzd0\workspace\.metadata\.plugins\
org.eclipse.wst.server.core\tmp2\wtpwebapps\hapi_hl7\WEB-INF\lib\
servlet-api-2.4.jar) - jar not loaded.
See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

我尝试从 webapp/lib 中删除 servlet,但没有成功。让我知道在我的情况下应该做什么。

原文由 dreambigcoder 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 292
1 个回答

servlet API .jar 文件不能嵌入到 webapp 中,因为很明显,容器的类路径中已经有这些类:它实现了这个 jar 中包含的接口。

依赖项应该在 provided 范围内,而不是默认的 compile 范围内,在您的 Maven pom 中:

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

原文由 JB Nizet 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题