Не удалось загрузить файл Jar в tomcat webapps
Это то, что я получил при попытке развернуть проект maven в tomcat
mvn tomcat7: развернуть
Ошибка:
INFO: validateJarFile (D:\Softwares\tomcat\apache-tomcat-7.0.50\webapps\myWebApp_
1\WEB-INF\lib\javax.servlet-api-3.0.1.jar) - jar не загружен. См. Описание сервлета 3.
0, раздел 10.7.2. Класс нарушения: javax/servlet/Servlet.class
Но javax.servlet-api-3.0.1.jar есть в WEB-INF\lib
Благодаря
Ответы
Ответ 1
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 уже поставляется вместе с tomcat внутри своей папки lib, и по умолчанию tomcat всегда будет загружать в него имеющуюся там сервлет-банку. Вот почему вы получаете предупреждение о том, что tomcat не загружает вашу банку внутри проекта.
Простое решение: если вы используете maven, установите его область как provided
внутри pom.xml, а maven не поместит ее в WEB-INF/lib вашего проекта. Что-то вроде
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
Ответ 2
Точное объяснение Saif asif.
Я использовал gradle как инструмент построения. Это помогло мне исключить tomcat-servlet-api.jar, который по умолчанию предоставляется tomcat.
Вам нужно знать, какая из ваших зависимостей транзитивно добавляет tomcat-servlet-api.jar к войне, а затем исключает ее, используя следующую
compile ('your dependency goes here') {
exclude module:'tomcat-servlet-api'
}
Ответ 3
Это просто предупреждение, которое появляется в вашем журнале, а не ошибка. Ваш проект по-прежнему будет развернут, если вы проигнорируете это.
Вы можете избавиться от этой ошибки, восстановив свой .war с помощью maven и скопировав его в\webapps\удалив старые файлы.
Ответ 4
Лучшее решение: удалите этот jar (i.e javax.servlet-api-3.0.1.jar) из lib