java.lang.NoClassDefFoundError: javax/servlet/Filtre
J'obtiens cette erreur quand je lance tomcat
java.lang.NoClassDefFoundError: javax/servlet/Filter
at java.lang.ClassLoader.findBootstrapClass(Native Method)
at java.lang.ClassLoader.findBootstrapClass0(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1301)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:207)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:78)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3666)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4258)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
j'ai déjà mis le servlet.jar dans le classpath et tomcat_home/commons/dossier lib
svp quelqu'un peut-il suggérer quoi faire.
OriginalL'auteur prem | 2012-01-13
Vous devez vous connecter pour publier un commentaire.
Cette exception peut se produire lorsque vous avez obtenu une copie de la
servlet.jar
qui trouve son origine dans un ancien conteneur de Servlet 2.2 ou plus et que le fichier obtenu priorité, dans classloading sur Tomcat propres bibliothèques. LeFilter
classe a à savoir introduit dans le Servlet 2.3.Vous ne devriez pas le faire. Supprimer tous servletcontainer des bibliothèques spécifiques à partir de votre
/WEB-INF/lib
, le "classpath" et le Tomcat/common/lib
dossiers.Le Tomcat servletcontainer déjà livré avec le droit de l'Api dans son propre
/lib
dossier. Vous ne devez avoir aucune copie dans votre webapp est/WEB-INF/lib
, ni d'ailleurs dans le classpath, aussi ne sont pas ceux d'un de complètement différent servletcontainer.Cette commune erreur de débutant de la tentative de téléchargement ou de copie aléatoire servletcontainer bibliothèques spécifiques est souvent causée par l'impossibilité de compiler des servlets par javac ou dans l'IDE. Lors de l'utilisation de javac, vous avez besoin de la référence de Tomcat
/lib
dans le-cp
argument. Lors de l'utilisation d'un IDE, vous avez besoin de faire référence à Tomcat Ciblées runtime dans les propriétés du projet.Voir aussi:
C'est un problème différent. Votre problème initial est résolu. Vous êtes maintenant un pas de plus vers un succès du déploiement. Cette exception signifie simplement que la classe donnée (ou, plus concrètement, le BOCAL contenant la classe donnée) est manquante dans l'exécution classpath. Vous auriez besoin de déposer dans
/WEB-INF/lib
. Poser une nouvelle question si vous stucks, ce qui est totalement sans rapport avec la question en cours.Puisque vous êtes nouveau ici, s'il vous plaît ne pas oublier de marquer la réponse acceptée à chaque fois qu'il a aidé (la plupart) dans la résolution du problème concret. Voir aussi meta.stackexchange.com/questions/5234/...
OriginalL'auteur BalusC
Incapable de trouver le jar version de servlet pot qui causait problème, j'ai ajouté la version correcte de pot de Tomcat classpath :
Ce pot réside dans
%TOMCAT_HOME%/lib
Remarque : assurez-servlet-api pot apparaît en premier.
OriginalL'auteur blue-sky
C'est parce que vous avoir un servlet.jar quelque part que vous ne devriez pas. Assurez-vous que la seule servlet.jar vous avez est en communes/lib, par la FAQ.
OriginalL'auteur Paul Sanwald
ajouter à votre pom.xml, remplacer la version avec la toute dernière version stable. recherche pour la saison printemps-web dans mvnrepository.com et obtenir la dernière version
OriginalL'auteur Mohammed Rafeeq