web-dev-qa-db-fra.com

java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

J'ai inclus:

  • toutes les libs de printemps,

  • Bibliothèque Apache Tomcat 7.0

    dans le chemin de construction 

mais cela donne quand même des erreurs:

SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
Java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1676)
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1521)
    at org.Apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.Java:415)
    at org.Apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.Java:397)
    at org.Apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.Java:118)
    at org.Apache.catalina.core.StandardContext.listenerStart(StandardContext.Java:4660)
    at org.Apache.catalina.core.StandardContext$1.call(StandardContext.Java:5226)
    at org.Apache.catalina.core.StandardContext$1.call(StandardContext.Java:5221)
    at Java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.Java:303)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:138)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.Java:886)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:908)
    at Java.lang.Thread.run(Thread.Java:662)
Jun 2, 2011 11:07:38 AM org.Apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.springframework.web.context.request.RequestContextListener
Java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1676)
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1521)
    at org.Apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.Java:415)
    at org.Apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.Java:397)
    at org.Apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.Java:118)
    at org.Apache.catalina.core.StandardContext.listenerStart(StandardContext.Java:4660)
    at org.Apache.catalina.core.StandardContext$1.call(StandardContext.Java:5226)
    at org.Apache.catalina.core.StandardContext$1.call(StandardContext.Java:5221)
    at Java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.Java:303)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:138)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.Java:886)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:908)
    at Java.lang.Thread.run(Thread.Java:662)
Jun 2, 2011 11:07:38 AM org.Apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class com.Sun.faces.config.ConfigureListener
Java.lang.ClassNotFoundException: com.Sun.faces.config.ConfigureListener
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1676)
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1521)
    at org.Apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.Java:415)
    at org.Apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.Java:397)
    at org.Apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.Java:118)
    at org.Apache.catalina.core.StandardContext.listenerStart(StandardContext.Java:4660)
    at org.Apache.catalina.core.StandardContext$1.call(StandardContext.Java:5226)
    at org.Apache.catalina.core.StandardContext$1.call(StandardContext.Java:5221)
    at Java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.Java:303)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:138)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.Java:886)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:908)
    at Java.lang.Thread.run(Thread.Java:662)

Dans "org.sprintframework.web-3.1.0.M1.jar", je vois "org.springframework.web.context.ContextLoaderListener".

Quelqu'un sur Google dit que spring.jar devrait être inclus, mais je ne vois aucun spring.jar dans la distribution 3.x.

Eclipse 3.6.2 Tomcat 7

Edit: Quelqu'un a dit que "Mettre à jour automatiquement les dépendances" devrait être coché dans les propriétés du projet mais je ne vois rien de tel dans les propriétés du projet . ClassNotFoundException: org.springframework.web.con text.ContextLoaderListener }

270
Emerald Hieu

J'ai eu un problème similaire lors de l'exécution d'une application Web Spring dans un Tomcat géré par Eclipse. J'ai résolu ce problème en ajoutant des dépendances maven dans l'assembly de déploiement Web du projet. 

  1. Ouvrez les propriétés du projet (par exemple, cliquez avec le bouton droit sur le nom du projet dans l'explorateur de projet et sélectionnez "Propriétés").
  2. Sélectionnez "Assemblage de déploiement".
  3. Cliquez sur le bouton "Ajouter ..." dans la marge de droite.
  4. Sélectionnez "Entrées du chemin de construction Java" dans le menu Type de directive et cliquez sur "Suivant".
  5. Sélectionnez "Dépendances Maven" dans le menu Entrées du chemin de construction Java, puis cliquez sur "Terminer".

Vous devez voir "Dépendances Maven" ajoutées à la définition de l'assemblage de déploiement Web.

746
Marcelo

La même chose m’arrive de temps en temps lorsqu’on utilise Eclipse WDT. C'est particulièrement frustrant quand cela arrive à un projet non modifié et qui a déjà fonctionné. Voici ce que je fais pour résoudre ce problème dans ce dernier scénario:

  1. Arrêtez Tomcat (s'il est en cours d'exécution)
  2. Ouvrez la vue "Serveurs": Fenêtre> Afficher la vue> Autre> Serveur> Serveurs
  3. Cliquez avec le bouton droit sur Serveur Tomcat> Nettoyer le répertoire de travail Tomcat.
  4. Clic droit sur Tomcat Server> Clean
  5. Redémarrer le serveur 

Cela résout généralement le problème que vous avez mentionné.

108
Chepech

Vous pouvez essayer "Nettoyer le répertoire de travail Tomcat" ou simplement "Nettoyer ..". Ceci est supposé éliminer tous les états publiés et republier à partir de zéro. 

26
Mashrur

J'ai utilisé IntelliJ IDEA, la compilation a réussi, mais lors du démarrage de Tomcat, elle indique:

Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
Java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

Au début, je pensais que le JAR manquait, mais il était en place.

Solution: File > Project Structure > Artifacts, dans le Output Layout double-cliquez dans le panneau de droite Available Elements sur la bibliothèque nommée comme Maven:..., elle sera déplacée vers WEB-INF/lib dans le volet gauche.

Acceptez et redémarrez Tomcat.

17
乌鸦不会飞

C’est sûrement un problème lié à Eclipse . Ce qui a fonctionné pour moi est la création d’un nouveau serveur dans l’onglet Serveur Eclipse ..__ puis lancez votre application sur ce nouveau serveur, cela devrait fonctionner.

8
Aditya Gaikwad

Vous devez utiliser au moins la version 3.2.8.RELEASE de spring-core. 

Pour Maven, définissez dans votre pom.xml:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.2.8.RELEASE</version>
</dependency>

Source: http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/cglib/core/SpringNamingPolicy.html depuis 3.2.8.

7
Benedikt Köppel

Si tout ce qui est mentionné ci-dessus ne fonctionne pas, essayez ce qui suit. Cela a fonctionné pour moi. 

Supprimez votre projet du serveur> Redémarrez le serveur> Ajouter votre projet au serveur> Redémarrez le serveur. 

Instruction détaillée:

1. Right click on server > Add and Remove
2. Select your project > Remove > Finish
3. Restart your server
4. Right click on server > Add and Remove
5. Select your project > Add > Finish
6. Restart your server again.
6
Susie

J'étais confronté au même problème pour un projet Eclipse configuré pour l'exécution de Tomcat 7

Cliquez avec le bouton droit sur le projet et accédez à Propriétés du projet .. Cliquez sur Assemblage de déploiement. J'ai remarqué que les jars Spring de la bibliothèque que j'avais créés au moment de la compilation avec une bibliothèque utilisateur étaient manquants… .. Ajoutez-les simplement et vous ne devriez plus voir d'erreur dans la console lors du démarrage de Tomcat

4
abhi

Si vous utilisez Maven, le projet n’est peut-être pas encore construit. Commencez par créer un «paquet propre mvn», puis essayez à nouveau de vous redéployer.

4
gouki

Solution pour Eclipse Luna:

  1. Clic droit sur le projet web maven
  2. Cliquez sur le menu 'Propriétés'
  3. Sélectionnez 'Deployment Assembly' dans la partie gauche de la fenêtre déroulante.
  4. Cliquez sur le bouton "Ajouter ..." dans la partie droite de la fenêtre qui s'ouvre
  5. Apparaissent maintenant une autre fenêtre contextuelle (Nouvelles directives d'assemblage).
  6. Cliquez sur 'Entrées du chemin de génération Java'
  7. Cliquez sur le bouton 'Suivant'
  8. Cliquez sur le bouton 'Terminer', fermez automatiquement la fenêtre contextuelle New Assemby Directivies
  9. Maintenant, cliquez sur le bouton 'Apply' et sur le bouton Ok
  10. Exécuter votre application web
3
Radhakrishnan S

En fait, c’est un problème de Tomcat . Il suffit d’aller dans le dossier 'lib' de votre projet et de copier tous vos fichiers jar relatifs à 'Spring'. Actualisez votre projet et vous êtes tous prêts à partir. Ce problème persiste parfois car Tomcat est incapable de localiser les classes de base Spring.

3
Rahul Sharma

Mettez <packaging>war</packaging> dans votre pom.xml si vous utilisez Maven . Dans ce cas, c’est peut-être avec l’emballage des pots.

Vous devez avoir les bibliothèques Maven dans Deployment Assembly.

1
Robson Martins

Si vous utilisez IntelliJ IDEA et déployez une application sur le serveur Tomcat, le message suivant est affiché: serveur  enter image description here

1
harun ugur

Pour moi, la solution a été de cliquer avec le bouton droit de la souris sur le module Webapp> Maven> Mettre à jour le projet

1
TheBakker

J'ai eu le même problème. Je l'ai résolu en ajoutant spring-web dependency in my pom . Veillez à utiliser le fichier jar spring-web contenant ContextLoaderListener class étend ContextLoader implémente ServletContextListener et réside dans le package org.springframework.web.context. J'ai utilisé la version 3.0.4.LELEASE

1
Asif Khan

J'ai le même problème, et je l'ai résolu en utilisant les étapes mentionnées ci-dessus. Mais non quand j'ai ce problème à nouveau et j'essaye ce qui suit,

RC (clic droit sur le projet Web) -> propriétés -> Assemblage de déploiement -> Ajouter -> Entrées de chemin de construction Java -> Suivant -> 

après avoir cliqué sur Suivant, il ne reste plus qu'une fenêtre vierge avec les options Suivant et Fnish désactivée. Que puis-je faire maintenant?

1
Geo Thomas

J'ai rencontré le même problème.

Il suffit de retirer le serveur de la configuration et de l'ajouter après le redémarrage d'Eclipse en l'ajoutant à l'environnement d'exécution du serveur.

1
Ramashis

Une solution rapide que je préfère et qui convient le mieux à cette situation consiste simplement à supprimer le dossier .metadata de votre espace de travail et à importer à nouveau vos projets. Si vous essayez toutes les autres options, cela ne garantira pas le succès. Parfois, les solutions ci-dessus fonctionnent parfois, mais vous passerez vos précieuses heures à corriger cette configuration.

Un jour, j’ai décidé de nettoyer mon poste de travail. J’ai rangé les projets dans les dossiers appropriés en fonction des différents clients. En conséquence, tout a été foiré. Après avoir passé toute une journée, il ne s’est pas retrouvé dans un espace de travail fixe. Le lendemain, j'ai simplement supprimé le dossier .metadata de l'espace de travail et importé à nouveau tous les projets. Bingo tous ensemble.

1
biswarup bannerjee

moi aussi j'ai fait face au même problème ... et résolu en suivant les étapes ci-dessous:

RC (clic droit sur le projet Web) -> Propriétés -> Assemblage de déploiement -> Ajouter -> Entrées du chemin de construction Java -> Suivant -> Sélectionnez les fichiers JAR manquants -> Suivant -> Terminer

L'application est en cours d'exécution avec succès ...

1
Neel

Pour les utilisateurs de Gradle, cela fonctionne avec les étapes suivantes

1) Arrêter et supprimer le serveur Tomcat de l’onglet Serveurs dans Eclipse

Eclipse Tomcat tab

2) nettoyer l'application Web et le répertoire de travail de l'installation Tomcat, (référence, Procédure: vider le cache de Tomcat et résoudre les problèmes JSP obsolètes )

$ rm -r /usr/local/AT7028/work/*
$ rm -r /usr/local/AT7028/webapps/WAR_NAME

3) nettoyer et éclipser le projet à l'aide de l'outil de construction

$ ./gradlew clean Eclipse/ lance la commande correspondante pour mvn utilisateurs, $ mvn clean package

_/4) configurez un nouveau serveur Tomcat dans Eclipse et réexécutez le projet.

1
prayagupd

J'ai aussi eu la même erreur. Je n'avais pas ajouté la dépendance ci-dessous dans mon fichier POM. 

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>4.1.7.RELEASE</version>
  </dependency>

Mais mon projet fonctionnait avant même que j'aie ajouté cette dépendance. Mais à un moment donné, il s'est arrêté et a commencé à donner la même erreur que précédemment.

Si quelqu'un ne peut pas résoudre cette erreur, il peut également résoudre ceci link

1
user2493028

J'ai essayé le

  • projet propre MVN 
  • nettoyer 
  • nettoyer le répertoire de travail Tomcat automatiquement
  • mettre à jour les dépendances

La seule chose qui a fonctionné au moins temporairement a été d'ajouter des dépendances Maven à la définition de l'assembly de déploiement Web.

Mais cela ne marche pas pour toujours! Après quelques jours, il cesse de fonctionner. Ma solution consistait à supprimer les dépendances Maven, à appliquer les modifications et à ajouter à nouveau les dépendances Maven.

J'utilise - Eclipse Juno - maven intégré - Tomcat 7

1
Volker Demel

L'utilisation de la "configuration du projet de mise à jour" a gâché le chemin de génération du projet. 

Correction: ouvrez le menu «Configurer le chemin de construction ...» (clic droit sur le projet) et corrigez les options Inclus/Exclu pour chaque dossier source .

0
kiwifrog

si rien d’en haut ne fonctionne, supprimez la classe .class de la classe d’auditeur, i.e.

<listener>
<listener-class>

org.springframework.web.context.ContextLoaderListener.class

</listener-class>
</listener>
0

Lorsque je regarde les solutions, il semble que le problème empêche toujours le chargement de la bibliothèque Spring. Cela peut être un problème de dépendance ou un problème de déploiement.

Dans mon cas, c'est le référentiel Maven qui a été corrompu. Ce qui a résolu le problème était de supprimer le dossier `C:\Utilisateurs (mon nom) .m2\repository 'et de le reconstruire.

0
Florian F

La solution réelle pour moi a été d'installer "m2e-wtp - Maven integration for WTP". La solution de Marcelo n’est pas nécessaire dans ce cas.

0
Christian

Dans de nombreux cas, il s’agit d’un problème de facette Java, jdk ou jre ou la version de jsp est différente du projet maven.

0
Ali.Mojtehedy

Je l'ai eu quand j'ai eu la bibliothèque dans mon chemin de construction, mais pas dans mon Assemblée de déploiement. Aussi quand j'avais un context.xml manquant.

0
Noumenon

Je suis tombé dessus quelques fois par trimestre. Cette fois, j’ai eu un résumé des changements minimes dans mon diff de git et j'ai suivi le problème vers un chemin de classe réinitialisé (ma dépendance WEB-INF/lib manquante) dans Eclipse. Cela semble se produire chaque fois que je m'arrête ou que je sors des projets maven de parents/frères.

Il est fait mention de l'ajout de vos bocaux à ressort à la bibliothèque de conteneurs Web Tomcat - c'est correct et c'est ainsi que fonctionnent la plupart des serveurs EE. Sachez toutefois qu'en plaçant Spring sur un arbre supérieur du chargeur de classes sur Tomcat, vous obtiendrez un niveau d'exploitation supérieur au niveau de chargeur de classes de votre contexte de guerre. Je vous recommande de laisser les bibliothèques dans un chargeur de classe de niveau inférieur per/war.

Nous voyons ce qui suit après un .classpath tronqué après un changement de projet structurel dans Eclipse.

Dec 18, 2016 11:13:39 PM org.Apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.springframework.web.context.request.RequestContextListener
Java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener

Mon chemin d'accès aux classes a été réinitialisé et la dépendance WEB-INF/lib a été supprimée.

<classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="org.Eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
</classpathentry>

remettre 

<attribute name="org.Eclipse.jst.component.dependency" value="/WEB-INF/lib"/>

et vous serez OK.

merci/michael

0
Michael O'Brien

Cela m’est arrivé après que j’ai modifié ma cartographie Hibernate dans un projet IntelliJ avec Gradle. Reconstruire simplement le projet a fonctionné pour moi.

0
Patience Mpofu

Cela fonctionne pour moi ..

Cliquez avec le bouton droit de la souris sur le projet Web mavenCliquez sur le menu 'Propriétés' Sélectionnez 'Assemblage de déploiement' dans la partie gauche de la fenêtre déroulante. .Maintenant, une nouvelle fenêtre contextuelle apparaît (nouvelles assemblées) Cliquez sur "Entrées du chemin de génération Java" Cliquez sur le bouton "Suivant". Cliquez maintenant sur le bouton "Appliquer" et sur le bouton Ok Lancez votre application Web.

0
user6425667

Dans mon cas, le problème était que la classe était située dans le package test. Le déplacer dans le package main a résolu le problème.

0
madox2