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

290

Zawarłem je w ścieżce kompilacji :

  • wszystkie wiosenne liby
  • Biblioteka Apache Tomcat 7.0

Projekt nadal nie działa podczas uruchamiania:

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)

W org.sprintframework.web-3.1.0.M1.jarmogę zobaczyć org.springframework.web.context.ContextLoaderListener.

Ktoś w Google mówi, że spring.jarnależy to uwzględnić, ale nie widzę żadnych spring.jarw dystrybucji 3.x.

Eclipse 3.6.2
Tomcat 7

Edycja: Ktoś z Spring Forum (offline) powiedział, że „Automatycznie aktualizuj zależności” należy sprawdzić we właściwościach projektu, ale nie widzę czegoś takiego we właściwościach projektu.

emeraldhieu
źródło
1
zamknij projekt, stwórz nowe miejsce pracy, upewnij się o zależnościach w POM. musiałem zmierzyć się z tym problemem, ale został naprawiony po korekcie zależności
MLS
Czy możesz opublikować zawartość swojego folderu .war / lib? A przynajmniej wszystko, co jest. * Wiosna. * \. Jar.
Simeon
Nawet jeśli dodałem następującą zależność do pom, nadal miałem ten sam błąd. <dependency> <groupId> org.springframework </groupId> <artifactId> spring-web </artifactId> <version> {Spring-Version} </version> </dependency> To, co zrobiłem było, jak sugerowali inni, dodałem maven zależności od zestawu wdrażania. A kiedy aktualizuję pom z innymi zależnościami i wykonuję maven> aktualizuję projekt, błąd ciągle nadchodzi. Sprawdzanie zestawu wdrażania pokazuje, że zależności typu maven są wyrzucane. Musiałem ponownie wykonać powyższy proces.
Tadele Ayelegn
1
To rozwiązanie działało dla większości. Dodaj zależności do zestawu wdrażania.
lokesh

Odpowiedzi:

777

Miałem podobny problem podczas uruchamiania wiosennej aplikacji internetowej w tomcat zarządzanym przez Eclipse. Rozwiązałem ten problem, dodając zależności maven do zestawu wdrażania sieci w projekcie.

  1. Otwórz właściwości projektu (np. Kliknij prawym przyciskiem myszy nazwę projektu w eksploratorze projektów i wybierz „Właściwości”).
  2. Wybierz „Zespół wdrożeniowy”.
  3. Kliknij przycisk „Dodaj ...” na prawym marginesie.
  4. Wybierz „Wpisy ścieżki budowania Java” z menu Typ dyrektywy i kliknij „Dalej”.
  5. Wybierz „Zależności Maven” z menu Wpisy ścieżki kompilacji Java i kliknij „Zakończ”.

Powinieneś zobaczyć „Zależności Maven” dodane do definicji zestawu Web Deployment Assembly.

Marcelo
źródło
6
W ten sposób powinieneś to zrobić, właściwy sposób zaćmienia.
pap.
18
Miałem ten sam problem. Ale nie widzę „Zespołu wdrażania” w „Właściwościach” (w module mojego wielomodułowego projektu maven).
gtiwari333
9
Jest to poprawne, choć bardzo denerwujące. Moim zdaniem może coś zająć się wtyczką m2e.
RickB
10
Widzę zależności Maven dodane do definicji zestawu Web Deployment Assembly, ale wciąż pojawia się błąd.
dabadaba
10
Co jeśli wpisy ścieżki budowania Java nie zawierają nic? W takim razie jestem.
vdolez
117

To samo dzieje się ze mną od czasu do czasu podczas korzystania z Eclipse WDT. Jest to szczególnie frustrujące, gdy dzieje się tak w przypadku niezmodyfikowanego i wcześniej działającego projektu. Oto, co robię, aby to naprawić w ostatnim scenariuszu:

  1. Zatrzymaj Tomcat (jeśli jest uruchomiony)
  2. Otwórz widok „Serwery”: Okno> Pokaż widok> Inne> Serwer> Serwery
  3. Kliknij prawym przyciskiem myszy serwer Tomcat> Wyczyść katalog roboczy Tomcat.
  4. Kliknij prawym przyciskiem myszy serwer Tomcat> Wyczyść
  5. Uruchom ponownie serwer

Zwykle rozwiązuje to wspomniany problem.

Chepech
źródło
3
Istnieje raport o błędzie dla tej konkretnej sytuacji ( bugs.eclipse.org/bugs/show_bug.cgi?id=365748 ). Programiści Eclipse potrzebują więcej informacji na ten temat i sposobów na odtworzenie problemu.
Chucky,
1
dobrze, to jest elastyczne rozwiązanie dla wszystkich, ta odpowiedź musi być oznaczona jako odpowiedź. Dobra robota Chepech
Java Pytania
3
To jest naprawdę najprostsze rozwiązanie tego problemu. Dzięki Chepech!
Badal
2
Nie pomogło mi to w użyciu Eclipse 4.4. Musiałem użyć metody usuwania / dodawania Susie do tomcat. Podczas czyszczenia czyściłem folder wdrażania tomcat. Nie wiem, dlaczego czyszczenie nie czyści folderu wdrażania.
Błogosławiony Geek
1
Zespół wdrażania jest właściwym sposobem, aby to zrobić, ale jeśli nie działa z powodu uszkodzenia lub czegoś innego, to czyszczenie faktycznie go naprawia.
Calabacin
26

Możesz spróbować „Wyczyść katalog roboczy Tomcat” lub po prostu „Wyczyść ..”. To powinno odrzucić wszystkie opublikowane stan i opublikować od nowa.

Mashrur
źródło
Dzięki za to rozwiązanie! Przyjęta powyżej odpowiedź nie rozwiązała dla mnie tego problemu, ale Twoja.
GreenTurtle
25

Użyłem IntelliJ IDEA, kompilacja się powiodła, ale podczas uruchamiania Tomcat mówi:

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

Na początku myślałem, że JAR brakuje, ale był na swoim miejscu.

Rozwiązanie: File > Project Structure > Artifactspo Output Layoutdwukrotnym kliknięciu w prawym panelu Available Elementsbiblioteka o nazwie like Maven:...zostanie przeniesiona doWEB-INF/lib lewego panelu.

Zaakceptuj i uruchom ponownie Tomcat.

乌鸦 不会 飞
źródło
Ta odpowiedź nie jest do końca odpowiednia dla zadanego pytania, ponieważ OP używał Eclipse
Adam Michalik
10
Ale pomogło mi to.
udaybhaskar
8

Jest to z pewnością problem związany z Eclipse. Sprawą, która działała dla mnie, było utworzenie nowego serwera w zakładce serwera Eclipse. Następnie uruchom aplikację na tym nowym serwerze, powinna działać.

Aditya Gaikwad
źródło
7

Jeśli wszystko wymienione powyżej nie działa, spróbuj wykonać następujące czynności. To zadziałało dla mnie.

Usuń projekt z serwera> Uruchom ponownie serwer> Dodaj swój projekt do serwera> Uruchom ponownie serwer.

Szczegółowa instrukcja:

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.
Susie
źródło
5

Taki sam problem wystąpił w przypadku projektu zaćmienia skonfigurowanego dla środowiska wykonawczego Tomcat 7

Kliknij projekt prawym przyciskiem myszy i przejdź do właściwości projektu. Kliknij Deployment Assembly. Zauważyłem, że brakowało moich wiosennych słoików biblioteki, które utworzyłem podczas kompilacji z biblioteką użytkownika. Po prostu dodaj słoiki i nie powinieneś widzieć żadnych błędów w konsoli podczas uruchamiania tomcat

abhi
źródło
5

Jeśli używasz maven, być może projekt jeszcze nie został zbudowany. Najpierw wykonaj mvn clean packageponownie próbę ponownego wdrożenia.

gouki
źródło
Eclipse 3.6.2 + Tomcat 7
emeraldhieu
4

Rozwiązanie dla Eclipse Luna:

  1. Kliknij prawym przyciskiem myszy projekt sieci web maven
  2. Kliknij menu „Właściwości”
  3. Wybierz „Zespół wdrażania” po lewej stronie wyskakującego okna
  4. Kliknij przycisk „Dodaj ...” po prawej stronie wyskakującego okna
  5. Teraz pojawia się jeszcze jedno okno wyskakujące (Nowe kierunki montażu)
  6. Kliknij „Wpisy ścieżki budowania Java”
  7. Kliknij przycisk „Dalej”
  8. Kliknij przycisk „Zakończ”, teraz automatycznie wyskakujące okienko wyskakującego okna Nowe kierunki montażu
  9. Teraz kliknij przycisk „Zastosuj” i przycisk OK
  10. Uruchom aplikację internetową
Radhakrishnan S.
źródło
4

Jeśli używasz IntelliJ IDEA i wdrażasz aplikację na serwerze Tomcat Server, napisane jest: W menu Plik -> wybierz strukturę projektu -> kliknij artefakt -> wybierz słoiki i kliknij prawym przyciskiem myszy -> włóż WEB \ lib -> uruchom ponownie serwerwprowadź opis zdjęcia tutaj

harun ugur
źródło
3

W rzeczywistości jest to problem Tomcat. Wystarczy przejść do folderu „lib” swojego projektu i skopiować do niego wszystkie słoiki związane z „wiosną”. Odśwież swój projekt i już możesz zacząć. Ten problem czasami występuje, ponieważ tomcat nie może zlokalizować podstawowych klas Spring.

Rahul Sharma
źródło
2

Miałem również ten sam błąd. Nie dodałem poniższej zależności do mojego pliku POM.

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

Ale mój porject działał jeszcze przed dodaniem tej zależności. Ale w pewnym momencie zatrzymał się i zaczął dawać ten sam powyższy błąd.

Jeśli ktoś nie może rozwiązać tego błędu, może również rozwiązać za pomocą tego linku


źródło
1
<dependency> <groupId> org.springframework </groupId> <artifactId> spring-web </artifactId> <version> 4.1.6.RELEASE </version> </dependency> Dodanie tego pomogło mi rozwiązać ten błąd.
Ashutosh S
2

Miałem ten sam problem. Rozwiązałem to, dodając do mojego poma zależność od sieci wiosennej . Upewnij się, że używasz słoik wiosna-Web, która ma ContextLoaderListener klasa rozszerza ContextLoader implements ServletContextListener i przebywania w org.springframework.web.context pakietu. Użyłem wersji 3.0.4

Asif Khan
źródło
1

Próbowałem

  • project clean mvn
  • czysty
  • wyczyść katalog roboczy tomcat Automatycznie
  • zaktualizować zależności

Jedyną rzeczą, która działała przynajmniej tymczasowo, było dodanie zależności Maven do definicji zestawu Web Deployment Assembly

Ale to nie działa na zawsze! Po kilku dniach przestaje działać. Moje rozwiązanie polegało na usunięciu zależności Maven, zastosowaniu zmian i ponownym dodaniu zależności Maven.

Używam - eclipse Juno - embedded maven - tomcat 7

Volker Demel
źródło
1

Dla stopniowych użytkowników Działa z następującymi krokami

1) Zatrzymaj i usuń serwer tomcat z karty Serwery w środowisku Eclipse

karta zaćmienie tomcat

2) wyczyść aplikację internetową i katalog roboczy z instalacji tomcat , (informacje, instrukcje : wyczyścić pamięć podręczną Tomcat i naprawić nieaktualne problemy z JSP )

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

3) wyczyść i zaćmień projekt za pomocą narzędzia do budowania

$ ./gradlew clean eclipse// odpal odpowiednie polecenie dla mvnużytkowników,$ mvn clean package

4) skonfiguruj nowy serwer Tomcat w środowisku Eclipse i ponownie uruchom projekt.

prayagupd
źródło
1

ja również napotkałem ten sam problem .... i rozwiązałem go, wykonując następujące kroki:

RC (kliknij prawym przyciskiem myszy projekt WWW) -> właściwości -> Zespół wdrażania -> Dodaj -> Wpisy ścieżki budowania Java -> Dalej -> wybierz brakujące pliki jar -> następne -> zakończ

Aplikacja działa poprawnie ...

Neel
źródło
Mam błąd OP, ale w moim zestawie wdrażania brakowało plików jar.
Blamkin86,
1

Mam ten sam problem i rozwiązałem go, wykonując powyższe kroki. Ale nie, kiedy ponownie wystąpi ten problem i spróbuję wykonać następujące czynności,

RC (kliknij prawym przyciskiem myszy projekt WWW) -> właściwości -> Zespół wdrażania -> Dodaj -> Wpisy ścieżki budowania Java -> Dalej ->

po kliknięciu dalej jest tylko puste okno z wyłączonymi opcjami Dalej i Fnish. Co mogę teraz zrobić?

Geo Thomas
źródło
1

Napotkałem ten sam problem.

Właśnie usunąłem serwer z konfiguracji i dodałem go z powrotem po ponownym uruchomieniu środowiska Eclipse, dodając go do środowiska wykonawczego serwera.

Ramashis
źródło
1

Dla mnie poprawka polegała na kliknięciu prawym przyciskiem myszy moduł aplikacji internetowej> Maven> Aktualizacja projektu

TheBakker
źródło
1

Jednym szybkim rozwiązaniem, które najbardziej mi odpowiada w tej sytuacji, jest po prostu usunięcie folderu .metadata z miejsca pracy i ponowne zaimportowanie projektów. Jeśli spróbujesz wszystkich innych opcji, nie zagwarantuje to sukcesu. Czasami powyższe rozwiązania działają, gdy poświęcisz cenne godziny na naprawę tej konfiguracji.

Pewnego dnia postanowiłem posprzątać swoje stanowisko pracy i zaaranżowałem projekty w odpowiednich folderach według różnych klientów. W rezultacie wszystko się popsuło. Po spędzeniu całego dnia nie skończyło się na stałym miejscu pracy. Następnego dnia po prostu usunąłem folder .metadata obszaru roboczego i ponownie zaimportowałem wszystkie projekty. Bingo wszystko gotowe.

biswarup bannerjee
źródło
1

Umieść <packaging>war</packaging>plik pom.xml, jeśli korzystasz z Maven. W takim przypadku może to być z opakowaniem słoika

Musisz mieć biblioteki Maven w Deployment Assembly

Robson Martins
źródło
0

Użycie „Aktualizuj konfigurację projektu” pomieszało ścieżkę kompilacji projektu.

Poprawka: otwórz menu „konfiguruj ścieżkę kompilacji ...” (kliknij projekt prawym przyciskiem myszy) i napraw opcje Uwzględnione / Wykluczone dla każdego folderu źródłowego. To działało dla mnie.

kiwifrog
źródło
0

W wielu przypadkach jest to problem z javą, wersja jdk lub jre lub jsp jest inna niż twarz projektu maven.

Ali.Mojtehedy
źródło
0

Rzeczywistym rozwiązaniem było dla mnie zainstalowanie „integracji m2e-wtp - Maven dla WTP”. W takim przypadku rozwiązanie Marcelo nie jest konieczne.

chrześcijanin
źródło
0

jeśli nic z powyższego nie działa, usuń .class z klasy detektora, tj

<listener>
<listener-class>

org.springframework.web.context.ContextLoaderListener.class

</listener-class>
</listener>
Abdullah Alshammari
źródło
0

To działa dla mnie ..

Kliknij prawym przyciskiem myszy projekt sieci web maven Kliknij menu „Właściwości” Wybierz „Zespół wdrażania” po lewej stronie wyskakującego okna Kliknij przycisk „Dodaj ...” po prawej stronie wyskakującego okna Teraz pojawi się jeszcze jedno okno wyskakujące (Nowe kierunki montażu) Kliknij „Wpisy ścieżek budowania Java” Kliknij przycisk „Dalej” Kliknij przycisk „Zakończ”, teraz zamknij automatycznie okno wyskakujące Nowe dyrektywy asemblacyjne Teraz kliknij przycisk „Zastosuj” i przycisk OK Uruchom aplikację

użytkownik6425667
źródło
0

Zdarzyło mi się to po wprowadzeniu zmian w moim mapowaniu Hibernacja w projekcie IntelliJ przy użyciu Gradle. Po prostu przebudowa projektu działała dla mnie.

Cierpliwość Mpofu
źródło
0

Wpadłem na to kilka razy na kwartał. Tym razem miałem minimalne podsumowanie zmian w mojej git diff i śledziłem problem do zresetowania ścieżki klas (brak mojej zależności WEB-INF / lib) w eclipse. Wydaje się, że dzieje się to za każdym razem, gdy wciągam lub wyciągam projekty rodziców / rodzeństwa maven.

Istnieją wzmianki o dodawaniu słoików wiosennych do biblioteki kontenerów tomcat - jest to w porządku i tak działa większość serwerów EE. Pamiętaj jednak, że umieszczając wiosnę wyżej w drzewie programu ładującego klasy na tomcat, będziesz biegał wyżej niż poziom programu ładującego klasy w kontekście wojny. Zalecam pozostawienie bibliotek lib w programie ładującym klasy niższego poziomu na wojnę.

Widzimy, co następuje po obciętej ścieżce .clas po zmianie projektu strukturalnego w zaćmieniu.

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

Moja ścieżka klasy została zresetowana, a zależność WEB-INF / lib została usunięta.

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

położyć z powrotem

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

i wszystko będzie dobrze.

dziękuję / michael

Michael O'Brien
źródło
0

Otrzymałem to, gdy miałem bibliotekę lib na mojej ścieżce kompilacji, ale nie w moim zestawie wdrażania. Również gdy brakowało mi pliku context.xml.

Noumenon
źródło