it-swarm.com.de

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

Ich schloss ein:

  • alle Frühlingsbibliotheken ,

  • Apache Tomcat 7.0-Bibliothek

    im Erstellungspfad

aber es gibt immer noch fehler:

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)

In "org.sprintframework.web-3.1.0.M1.jar" sehe ich "org.springframework.web.context.ContextLoaderListener".

Jemand auf Google sagt, dass spring.jar enthalten sein sollte, aber ich sehe keine spring.jar in der 3.x-Distribution.

Eclipse 3.6.2 Tomcat 7

Bearbeiten: Jemand sagt, "Abhängigkeiten automatisch aktualisieren" sollte in den Projekteigenschaften aktiviert sein, aber ich sehe so etwas nicht in den Projekteigenschaften. ClassNotFoundException: org.springframework.web.con text.ContextLoaderListener

270
Emerald Hieu

Beim Ausführen einer Spring-Webanwendung in einem von Eclipse verwalteten Tomcat hatte ich ein ähnliches Problem. Ich habe dieses Problem durch Hinzufügen von Maven-Abhängigkeiten in der Webbereitstellungs-Assembly des Projekts gelöst. 

  1. Öffnen Sie die Eigenschaften des Projekts (klicken Sie beispielsweise im Projekt-Explorer mit der rechten Maustaste auf den Namen des Projekts und wählen Sie "Eigenschaften").
  2. Wählen Sie "Deployment Assembly" aus.
  3. Klicken Sie am rechten Rand auf die Schaltfläche "Hinzufügen ...".
  4. Wählen Sie "Java Build Path Entries" aus dem Menü des Direktive-Typs aus und klicken Sie auf "Weiter".
  5. Wählen Sie "Maven-Abhängigkeiten" aus dem Menü "Java Build Path Entries" und klicken Sie auf "Fertig stellen".

Sie sollten "Maven-Abhängigkeiten" zur Definition der Webbereitstellungs-Assembly hinzufügen.

746
Marcelo

Das gleiche passiert bei mir gelegentlich, wenn ich Eclipse WDT verwende. Sein Spezialgebiet ist frustrierend, wenn dies einem unveränderten und zuvor funktionierenden Projekt passiert. So mache ich das Problem in diesem letzten Szenario:

  1. Stoppen Sie Tomcat (wenn es läuft)
  2. Öffnen Sie die Ansicht "Server": Fenster> Ansicht anzeigen> Andere> Server> Server
  3. Klicken Sie mit der rechten Maustaste auf Tomcat-Server> Tomcat-Arbeitsverzeichnis reinigen.
  4. Klicken Sie mit der rechten Maustaste auf Tomcat Server> Clean
  5. Starten Sie den Server neu 

Dies behebt normalerweise das von Ihnen erwähnte Problem.

108
Chepech

Sie können "Clean Tomcat Work Directory" oder "Clean .." versuchen. Dies soll den gesamten veröffentlichten Zustand verwerfen und von Grund auf neu veröffentlichen. 

26
Mashrur

Ich habe IntelliJ IDEA verwendet, die Kompilierung ist erfolgreich, aber beim Starten von Tomcat heißt es:

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

Am Anfang dachte ich, der JAR fehlt, aber er ist vorhanden.

Lösung: File > Project Structure > Artifacts, im Output Layout-Doppelklick im rechten Bereich Available Elements der Bibliothek mit dem Namen Maven:... wird sie im linken Bereich nach WEB-INF/lib verschoben.

Akzeptieren und starten Sie Tomcat neu.

17
乌鸦不会飞

Dies ist sicherlich ein mit Eclipse in Zusammenhang stehendes Problem ..__Das, was für mich funktioniert hat, ist das Erstellen eines neuen Servers im Eclipse-Server-Tab . Führen Sie dann Ihre Anwendung auf diesem neuen Server aus, es sollte funktionieren.

8
Aditya Gaikwad

Sie müssen mindestens die Version 3.2.8.RELEASE des Federkerns verwenden. 

Legen Sie für Maven Ihren pom.xml fest:

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

Quelle: http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/cglib/core/SpringNamingPolicy.html , seit 3.2.8.

7

Wenn alles oben genannte nicht funktioniert, versuchen Sie Folgendes. Es hat für mich funktioniert. 

Entfernen Sie Ihr Projekt vom Server> Server neu starten> Projekt zum Server hinzufügen> Server neu starten. 

Detaillierte Anweisungen:

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

Für ein Eclipse-Projekt, das für die Tomcat 7-Laufzeitumgebung konfiguriert wurde, stand dasselbe Problem

Klicken Sie mit der rechten Maustaste auf Projekt und gehen Sie zu den Projekteigenschaften. Klicken Sie auf Deployment Assembly. Ich konnte feststellen, dass meine Frühlingsbibliothekgläser fehlten, die ich während der Kompilierzeit mit einer Benutzerbibliothek erstellt hatte .. Fügen Sie einfach die Gläser hinzu, und Sie sollten beim Starten von Tomcat keine Fehler in der Konsole sehen

4
abhi

Wenn Sie Maven verwenden, ist das Projekt vielleicht noch nicht gebaut. Führen Sie zuerst ein "mvn clean package" aus, und versuchen Sie es dann erneut.

4
gouki

Lösung für Eclipse Luna:

  1. Klicken Sie mit der rechten Maustaste auf das Webprojekt von maven
  2. Klicken Sie auf "Eigenschaften"
  3. Wählen Sie auf der linken Seite des Popup-Fensters 'Deployment Assembly' aus
  4. Klicken Sie auf "Hinzufügen ..." auf der rechten Seite des Fensters
  5. Jetzt erscheint ein weiteres Popup-Fenster (neue Assembly-Direktiven)
  6. Klicken Sie auf "Java Build-Pfadeinträge".
  7. Klicken Sie auf "Weiter"
  8. Klicken Sie auf die Schaltfläche "Fertig stellen". Schließen Sie nun automatisch das Popup-Fenster "New Assemby Directivies"
  9. Klicken Sie nun auf die Schaltfläche "Übernehmen" und die Schaltfläche Ok
  10. Führen Sie Ihre Webapplikation aus
3
Radhakrishnan S

Eigentlich ist dies ein Problem von Tomcat . Gehen Sie einfach in den 'lib'-Ordner Ihres Projekts und kopieren Sie alle Ihre' Spring'-bezogenen Gläser in dieses Verzeichnis. Aktualisieren Sie Ihr Projekt und Sie sind alle bereit zu gehen. Dieses Problem bleibt manchmal bestehen, da Tomcat keine Spring-Core-Klassen finden kann.

3
Rahul Sharma

Geben Sie <packaging>war</packaging> in Ihre pom.xml ein, wenn Sie Maven verwenden

Sie müssen Maven-Bibliotheken in Deployment Assembly haben

1
Robson Martins

Wenn Sie IntelliJ IDEA verwenden und die Anwendung auf Tomcat Server bereitstellen, heißt es: Unter Datei -> Projektstruktur auswählen -> Artefakt anklicken -> Gläser auswählen und Rechtsklick -> in WEB\lib -> Neustart einfügen Server  enter image description here

1
harun ugur

Für mich war das Update ein Rechtsklick auf mein Webapp-Modul> Maven> Projekt aktualisieren

1
TheBakker

Ich hatte das gleiche Problem. Ich löste es durch Hinzufügen von spring-web Abhängigkeit in meinem pom . Stellen Sie sicher, dass Sie Spring-Web-Jar verwenden, das über die Klasse ContextLoaderListener verfügt. ContextLoader implementiert ServletContextListener und befindet sich im Paket org.springframework.web.context. Ich habe 3.0.4.RELEASE verwendet

1
Asif Khan

Ich habe das gleiche Problem und habe es mit den oben genannten Schritten gelöst. Aber nein, wenn ich dieses Problem erneut habe und ich versuche Folgendes:

RC (Rechtsklick auf Webprojekt) -> Eigenschaften -> Bereitstellungsassembly -> Hinzufügen -> Java-Build-Pfadeinträge -> Weiter -> 

nachdem Sie auf Weiter geklickt haben, ist nur ein leeres Fenster mit den Optionen Weiter und Fnish deaktiviert. Was kann ich jetzt tun?

1
Geo Thomas

Ich hatte das gleiche Problem.

Der Server wurde einfach aus der Konfiguration entfernt und nach dem Neustart von Eclipse wieder hinzugefügt, indem er zur Serverlaufzeitumgebung hinzugefügt wurde.

1
Ramashis

Eine schnelle Lösung, die ich für diese Situation am besten schätze, ist, den .metadata-Ordner Ihres Arbeitsbereichs zu löschen und Ihre Projekte erneut zu importieren. Wenn Sie alle anderen Optionen ausprobieren, garantiert dies nicht den Erfolg. Manchmal funktionieren die oben genannten Lösungen manchmal, wenn Sie Ihre wertvollen Stunden damit verbringen, diese Konfiguration zu korrigieren.

Eines Tages entschied ich mich, meinen Arbeitsplatz zu säubern. Ich ordnete die Projekte in den entsprechenden Ordnern nach verschiedenen Kunden an. Als Ergebnis wurde alles durcheinander gebracht. Nach einem ganzen Tag landete es nicht in einem festen Arbeitsbereich. Am nächsten Tag habe ich einfach den .metadata-Ordner des Arbeitsbereichs gelöscht und alle Projekte erneut importiert. Bingo alles eingestellt.

1

ich hatte auch das gleiche Problem ... und wurde durch folgende Schritte gelöst:

RC (Rechtsklick auf Webprojekt) -> Eigenschaften -> Bereitstellungsassemblierung -> Hinzufügen -> Java-Build-Pfadeinträge -> Nächste -> JAR-Dateien auswählen, die fehlen -> Nächste -> Fertig stellen

Anwendung läuft erfolgreich ...

1
Neel

Für gradle Benutzer funktioniert es mit den folgenden Schritten

1) Stop and Delete Tomcat-Server von der Registerkarte Servers in Eclipse

Eclipse Tomcat tab

2) Bereinigen Sie das WebApp-Verzeichnis und das Arbeitsverzeichnis von der Tomcat-Installation, (Referenz, Anleitung: Löschen Sie den Tomcat-Cache und beheben Sie veraltete JSP-Probleme ).

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

3) Projekt mit Build-Tool reinigen und eclipsifizieren

$ ./gradlew clean Eclipse/ Befehl für mvn-Benutzer auslösen, $ mvn clean package

_/4) Konfigurieren Sie einen neuen Tomcat-Server in Eclipse und führen Sie das Projekt erneut aus.

1
prayagupd

Ich hatte auch den gleichen Fehler. Ich hatte die unten stehende Abhängigkeit nicht in meine POM-Datei eingefügt. 

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

Mein Projekt lief jedoch schon, bevor ich diese Abhängigkeit hinzugefügt hatte. Aber irgendwann hörte es auf und gab den gleichen Fehler ab.

Wenn jemand diesen Fehler nicht lösen konnte, kann er auch durch diesen Link

1
user2493028

Ich habe das ausprobiert

  • projekt sauber MVN 
  • sauber 
  • tomcat-Arbeitsverzeichnis automatisch säubern
  • abhängigkeiten aktualisieren

Das einzige, was zumindest vorübergehend funktionierte, war das Hinzufügen von Maven-Abhängigkeiten zur Definition der Webbereitstellungs-Assembly

Aber das funktioniert nicht für immer! Nach ein paar Tagen hört es auf zu arbeiten. Meine Lösung bestand darin, Maven-Abhängigkeiten zu entfernen, Änderungen anzuwenden und Maven-Abhängigkeiten erneut hinzuzufügen.

Ich verwende - Eclipse Juno - eingebetteter Portier - Tomcat 7

1
Volker Demel

Durch die Verwendung der "Projektkonfiguration aktualisieren" wurde der Erstellungspfad des Projekts durcheinander gebracht. 

Korrektur: Öffnen Sie das Menü "Build-Pfad konfigurieren" (klicken Sie mit der rechten Maustaste auf das Projekt), und korrigieren Sie die Optionen für "Eingeschlossen/Ausgeschlossen" für jeden Quellordner.

0
kiwifrog

wenn nichts von oben funktioniert, entfernen Sie die .class aus der Listener-Klasse, d. h.

<listener>
<listener-class>

org.springframework.web.context.ContextLoaderListener.class

</listener-class>
</listener>
0

Wenn ich mir die Lösungen anschaue, scheint das Problem immer etwas zu sein, das das Laden der Federbibliothek verhindert. Dies kann ein Abhängigkeitsproblem oder ein Bereitstellungsproblem sein.

In meinem Fall war es das Maven-Repository, das irgendwie beschädigt wurde. Was das Problem löste, war, den Ordner "C:\Users (my name) .m2\repository" zu entfernen und neu zu erstellen.

0
Florian F

Die eigentliche Lösung für mich war die Installation der "m2e-wtp - Maven-Integration für WTP". Die Lösung von Marcelo ist in diesem Fall nicht notwendig.

0
Christian

In vielen Fällen handelt es sich um ein Java-Facettenproblem, die Version von JDK oder JRE oder JSP unterscheidet sich von der Projektoberfläche von Maven.

0
Ali.Mojtehedy

Ich bekam das, als ich die lib in meinem Build-Pfad hatte, aber nicht in meiner Deployment-Assembly. Auch wenn ich eine fehlende context.xml hatte.

0
Noumenon

Ich traf ein paar Mal ein Viertel. Diesmal hatte ich eine minimale Änderungszusammenfassung in meinem git diff und verfolgte das Problem in einem zurückgesetzten Klassenpfad (der meine WEB-INF/lib-Abhängigkeit vermisst) in Eclipse. Dies scheint jedes Mal aufzutreten, wenn ich Eltern-/Geschwister-Maven-Projekte ziehe oder herausziehe.

Es wird erwähnt, dass Sie Ihre Spring-Gläser zur Tomcat-Webcontainer-Bibliothek hinzufügen. Dies ist in Ordnung und wird von den meisten EE-Servern ausgeführt. Beachten Sie jedoch, dass Sie durch das Platzieren der Feder in der Classloader-Baumstruktur in Tomcat eine höhere Stufe als die Classloader-Stufe Ihres Kriegskontexts erreichen. Ich empfehle Ihnen, die Bibliotheken in einem ClassLoader pro/niedrigerer Klasse zu belassen.

Wir sehen Folgendes nach einem abgeschnittenen .classpath nach einer strukturellen Projektänderung in 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

Mein Klassenpfad wurde zurückgesetzt und die WEB-INF/lib-Abhängigkeit wurde entfernt.

<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>

zurück geben 

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

und du wirst in Ordnung sein.

danke/michael

0
Michael O'Brien

Dies ist mir passiert, nachdem ich in einem IntelliJ-Projekt mit Gradle Änderungen an meiner Hibernate-Zuordnung vorgenommen hatte. Das Projekt einfach umzubauen, hat für mich funktioniert.

0
Patience Mpofu

Das funktioniert für mich ..

Klicken Sie mit der rechten Maustaste auf das Web-Projekt von mavenKlicken Sie auf das Menü "Eigenschaften" Wählen Sie auf der linken Seite des geöffneten Fensters die Option "Deployment Assembly" aus Klicken Sie auf die Schaltfläche "Hinzufügen". Nun erscheint ein weiteres Popup-Fenster (Neue Assembly-Direktiven) .__ Klicken Sie auf "Java Build-Pfadeinträge" .__ Klicken Sie auf "Weiter". Klicken Sie auf "Fertig stellen" und schließen Sie automatisch das New Assemby-Direktive-Popup-Fenster. Klicken Sie nun auf die Schaltfläche "Übernehmen" und die Schaltfläche Ok. Starten Sie Ihre Webapplikation

0
user6425667

In meinem Fall bestand das Problem darin, dass sich die Klasse im Paket test befand. Das Verschieben in das main -Paket hat das Problem behoben.

0
madox2