C'est ce que l'erreur que j'ai obtenue lorsque j'essaie de déployer le projet maven sur Tomcat mvn Tomcat7: deploy Erreur: INFO: validateJarFile (D:\Softwares\Tomcat\Apache-Tomcat-7.0). 50\webapps\myWebApp_ 1\WEB-INF\lib\javax.servlet-api-3.0.1.jar) - jar non chargé. Voir la spécification Servlet 3. 0, section 10.7.2. Classe incriminée: javax/servlet/Servlet .class
Mais le javax.servlet-api-3.0.1.jar est là dans WEB-INF\lib Merci
INFO: validateJarFile (D:\Softwares\Tomcat\Apache-Tomcat-7.0.50\webapps\myWebApp_ 1\WEB-INF\lib\javax.servlet-api-3.0.1.jar) - le pot n'est pas chargé
Servlet3.0 est déjà livré avec le Tomcat dans son dossier lib et par défaut, Tomcat chargera toujours le pot de servlet qui s'y trouve. C'est pourquoi vous recevez l'avertissement que Tomcat ne charge pas votre pot à l'intérieur du projet.
Solution simple: si vous utilisez maven, définissez sa portée comme provided
dans le pom.xml et maven ne le placera pas dans le WEB-INF/lib de votre projet. Quelque chose comme
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
Explication précise par Saif asif.
J'utilisais gradle comme outil de construction. Cela a fonctionné pour moi d'exclure le Tomcat-servlet-api.jar qui est par défaut fourni par Tomcat.
Vous devez savoir laquelle de vos dépendances ajoute de manière transitoire Tomcat-servlet-api.jar à la guerre, puis l'exclure en utilisant les éléments suivants
compile ('your dependency goes here') {
exclude module:'Tomcat-servlet-api'
}
Il s'agit simplement d'un avertissement qui apparaît dans votre journal, et non d'une erreur. Votre projet sera toujours déployé si vous l'ignorez.
Vous pouvez vous débarrasser de cette erreur en reconstruisant votre .war en utilisant maven et en le copiant dans\webapps\en supprimant vos anciens fichiers.