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


290

Bunları Yapı Yoluna ekledim :

  • tüm bahar libs
  • Apache Tomcat 7.0 Kütüphanesi

Proje başlatma sırasında hala başarısız oluyor:

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)

İçinde org.sprintframework.web-3.1.0.M1.jargörebiliyorum org.springframework.web.context.ContextLoaderListener.

Google'daki bir kişi spring.jarbunun dahil edilmesi gerektiğini söylüyor, ancak spring.jar3.x dağıtımında hiç görmüyorum .

Tutulma 3.6.2
Tomcat 7

Düzenleme: Birisi Bahar Forum (çevrimdışı) "Bağımlılıkları otomatik olarak güncelle" Proje Özellikleri'nde kontrol edilmesi gerektiğini söyledi ama proje özelliklerinde böyle bir şey görmüyorum.


1
projeyi kapatın, yeni işyeri yaratın, POM'daki bağımlılıklar hakkında emin olun. Bu sorunla yüzleşmek zorunda kaldım ama bağımlılıklarda düzeltmeden sonra düzeltildi
MLS

.War / lib klasörünüzün içeriğini yayınlayabilir misiniz? Ya da en azından her şey. * Bahar. * \. Kavanoz.
Simeon

Pom'a aşağıdaki bağımlılığı eklesem bile, hala aynı hatayla karşılaşıyordum. <dependency> <groupId> org.springframework </groupId> <artifactId> bahar-web </artifactId> <version> {Spring-Version} </version> </dependency> Diğerlerinin önerdiği gibi, maven ekledim dağıtım derlemesine bağımlılıklar. Pom'yı diğer bağımlılıklarla güncellediğimde ve maven> güncelleme projesi yaptığımda hata devam ediyor. Dağıtım düzeneğini incelemek, bana bağımlı bağımlılıkların başladığını gösteriyor. Yukarıdaki işlemi tekrar yapmak zorunda kaldım.
Tadele Ayelegn

1
Bu çözüm en çok işe yaradı. Dağıtım derlemesine bağımlılıklar ekleyin.
lokesh

Yanıtlar:


777

Eclipse tarafından yönetilen tomcat'ta bir bahar web uygulaması çalıştırırken de benzer bir sorun yaşadım. Projenin web dağıtım derlemesine maven bağımlılıkları ekleyerek bu sorunu çözdüm.

  1. Projenin özelliklerini açın (örn. Proje gezgini içinde projenin adına sağ tıklayın ve "Özellikler" i seçin).
  2. "Dağıtım Montajı" nı seçin.
  3. Sağ kenar boşluğundaki "Ekle ..." düğmesini tıklayın.
  4. Yönerge Türü menüsünden "Java Derleme Yol Girdileri" ni seçin ve "İleri" ye tıklayın.
  5. Java Derleme Yolu Girişleri menüsünden "Maven Bağımlılıkları" nı seçin ve "Son" u tıklayın.

Web Dağıtım Meclisi tanımına "Maven Bağımlılıkları" eklendiğini görmelisiniz.


6
Tutulmada doğru şekilde yapmalısınız.
pap

18
Aynı sorunu yaşıyordum. Fakat 'Konuşlandırma Meclisi'ni' Özellikler'de göremiyorum (çok modüllü maven projemin bir modülünde).
gtiwari333

9
Son derece sinir bozucu olmasına rağmen bu doğrudur. Belki de m2e eklentisinin bir şeyle ilgilenmesi gerektiğini düşünüyorum.
RickB

10
Maven Bağımlılıklarının Web Dağıtım Meclisi tanımına eklendiğini görüyorum ancak hatayı almaya devam ediyorum.
dabadaba

10
Java Derleme Yolu Girdileri hiçbir şey içermiyorsa ne olur? Ben bu durumdayım.
vdolez

117

Eclipse WDT kullanırken zaman zaman aynı şey olur. Bu, değiştirilmemiş ve daha önce çalışan bir projede olduğunda sinir bozucu. Bu son senaryoda düzeltmek için yaptığım şey bu:

  1. Tomcat'i durdurun (çalışıyorsa)
  2. "Sunucular" görünümünü açın: Pencere> Görünümü göster> Diğer> Sunucu> Sunucular
  3. Tomcat Sunucusu> Tomcat Çalışma Dizini'ni Temizle'ye sağ tıklayın.
  4. Tomcat Sunucusu'na sağ tıklayın> Temizle
  5. Sunucuyu yeniden başlatın

Bu genellikle bahsettiğiniz sorunu giderir.


3
Bu özel durum için bir hata raporu var ( bugs.eclipse.org/bugs/show_bug.cgi?id=365748 ). Eclipse geliştiricileri bu konuda daha fazla bilgiye ve sorunu yeniden üretmenin yollarına ihtiyaç duyuyorlar.
Chucky

1
iyi bu herkes için esnek bir çözüm, bu cevap cevap olarak işaretlenmelidir. İyi iş Chepech
Java Soruları

3
Bu gerçekten bu problem için en basit çözüm. Teşekkürler Chepech!
Badal

2
Tutulma 4.4'ü kullanmak bana yardımcı olmadı. Tomcat'e Susie yöntemini kaldırma / yerleştirme yöntemini kullanmak zorunda kaldım. Temizlik yaparken tomcat dağıtım klasörünü izliyordum. Temizlemenin neden dağıtım klasörünü temizlemediğini bilmiyorum.
Blessed Geek

1
Dağıtım derlemesi bunu yapmanın doğru yoludur, ancak bir miktar bozulma veya herhangi bir şey nedeniyle çalışmazsa, bu temizleme aslında bunu düzeltir.
Calabacin

26

"Tomcat Çalışma Dizini Temizle" ya da sadece "Temiz .." deneyebilirsiniz. Bu, yayınlanan tüm durumları atması ve sıfırdan yeniden yayınlaması gerekiyordu.


Bu çözüm için teşekkürler! Yukarıdaki kabul edilen cevap bu sorunu benim için çözmedi, ancak sizinki çözdü.
GreenTurtle

25

IntelliJ IDEA kullandım, derleme başarılı, ancak Tomcat'e başlarken şöyle diyor:

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

Başlangıçta, JAR'ın eksik olduğunu düşündüm, ama yerinde idi.

Çözüm: File > Project Structure > Artifactsiçinde Output Layoutsağ panelde çift tıklama Available Elementsgibi adlandırılmış kütüphane Maven:..., bu taşınır WEB-INF/libsol bölmede.

Tomcat'i kabul edin ve yeniden başlatın.


OP Eclipse kullanarak olduğu gibi Bu cevap sorulan soru için tam olarak uygun değildir
Adam Michalik

10
Ama bana yardımcı oldu.
udaybhaskar

8

Bu kesinlikle Eclipse ile ilgili bir konudur. Benim için işe yarayan şey, eclipse sunucusu sekmesinde yeni bir sunucu oluşturmak. Sonra uygulamanızı bu yeni sunucuda çalıştırın, çalışması gerekir.



7

Yukarıda belirtilen her şey işe yaramazsa aşağıdakileri deneyin. Benim için çalıştı.

Projenizi sunucudan kaldırın> Sunucuyu yeniden başlat> Projenizi sunucuya ekleyin> Sunucuyu yeniden başlat.

Detaylı Talimat:

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.

5

Tomcat 7 çalışma zamanı için yapılandırılmış bir tutulma projesi için de aynı sorunla karşı karşıyaydım

Projeye sağ tıklayın ve proje özelliklerine gidin. Dağıtım Meclisi'ne tıklayın. Bir kullanıcı kitaplığıyla derleme zamanında oluşturduğum bahar kitaplığı kavanozlarımın eksik olduğunu fark edebildim. Sadece kavanozları ekleyin ve tomcat başlatılırken konsolda hiçbir hata görmemelisiniz.


5

Eğer maven kullanıyorsanız, belki de proje henüz inşa edilmemiştir. Önce mvn clean packagetekrar konuşmayı deneyin.


Tutulma 3.6.2 + Tomcat 7
Emeraldhieu

4

Eclipse Luna için çözüm:

  1. Maven web projesine sağ tıklayın
  2. "Özellikler" menüsünü tıklayın
  3. Açılan pencerenin sol tarafındaki 'Dağıtım Montajı'nı seçin
  4. Açılan pencerenin sağ tarafındaki 'Ekle ...' düğmesini tıklayın
  5. Şimdi bir tane daha açılır pencere görünür (Yeni Montaj Yönlendirmeleri)
  6. 'Java Derlemesi yol girişleri'ni tıklayın
  7. 'İleri' düğmesine tıklayın
  8. 'Son' düğmesine tıklayın, şimdi Yeni Assemby Dizinleri açılır penceresini otomatik olarak kapatın
  9. Şimdi 'Uygula' Düğmesini ve Tamam Düğmesini tıklayın
  10. Web uygulamanızı çalıştırın

4

IntelliJ IDEA kullanıyorsanız ve uygulamayı Tomcat Server'da konuşlandırıyorsanız, şöyle diyor: Dosya menüsü -> proje Yapısını seçin -> artefakt -> kavanozlarınızı seçin ve sağ tıklayın -> WEB \ lib'e koy -> sunucuyu yeniden başlatresim açıklamasını buraya girin


3

Aslında bu Tomcat'in bir sorunu. Projenizin 'lib' klasörüne gidin ve 'Spring' ile ilgili tüm kavanozlarınızı buna kopyalayın. Projenizi yenileyin ve hepiniz hazırsınız. Bu sorun bir süre devam ediyor çünkü tomcat Spring çekirdek sınıflarını bulamıyor.


2

Aynı hatayla da karşılaştım. POM dosyama aşağıdaki bağımlılığı eklememiştim.

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

Ama benim porjectim bu bağımlılığı eklemeden önce bile çalışırdı. Ama bir noktada durdu ve aynı hatayı vermeye başladı.

Herhangi biri bu hatayı çözemezse, bu bağlantıyla da çözebilir


1
<dependency> <groupId> org.springframework </groupId> <artifactId> spring-web </artifactId> <version> 4.1.6.RELEASE </version> </dependency> Bunu eklemek bu hatayı çözmeme yardımcı oldu.
Ashutosh S

2

Aynı sorunu yaşadım. Pom'ma bahar-web bağımlılığı ekleyerek çözdüm. ContextLoaderListener sınıfını genişleten spring-web jar kullandığınızdan emin olun ContextLoader ServletContextListener uygular ve org.springframework.web.context paketinde bulunur. 3.0.4 kullandım.


1

Denedim

  • proje temiz mvn
  • temiz
  • tomcat çalışma dizinini otomatik olarak temizle
  • bağımlılıkları güncelle

En azından geçici olarak çalışan tek şey Web Dağıtım Meclisi tanımına Maven Bağımlılıkları eklemekti

Ama bu hiç de işe yaramıyor! Birkaç gün sonra çalışmayı bırakır. Benim çözümüm Maven Bağımlılıkları kaldırmak, değişiklik uygulamak ve Maven Bağımlılıkları tekrar eklemekti.

Kullanıyorum - tutulma Juno - gömülü maven - tomcat 7


1

Sınıf kullanıcıları için, aşağıdaki adımlarla çalışır

1) Tutulmada Sunucular Sekmesinden Tomcat Sunucusunu Durdurun ve Silin

eclipse tomcat sekmesi

2) Tomcat kurulumundan webapp ve iş dizinini temizleyin , (Referans, Nasıl Yapılır: Tomcat'in önbelleğini temizleyin ve eski JSP sorunlarını düzeltin )

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

3) derleme aracını kullanarak temiz ve tutulma

$ ./gradlew clean eclipse// mvnkullanıcılar için ilgili komutu çalıştırın ,$ mvn clean package

4) tutulmada yeni bir Tomcat sunucusu yapılandırın ve projeyi tekrar çalıştırın.


1

Ben de aynı sorunla karşı karşıya .... ve aşağıdaki adımları izleyerek çözüldü:

RC (web projesine sağ tıklayın) -> özellikler -> Dağıtım Montajı -> Ekle -> Java Oluşturma Yolu Girişleri -> Sonraki -> eksik olan jar dosyalarını seçin -> sonraki -> bitir

Uygulama başarıyla çalışıyor ...


OP hatası var, ancak dağıtım derlememde eksik jar dosyası yoktu.
Blamkin86

1

Aynı sorunu yaşıyorum ve yukarıda belirtilen adımları kullanarak çözdüm. Ama hayır bu sorunu tekrar aldığımda ve aşağıdakileri denediğimde,

RC (web projesine sağ tıklayın) -> özellikler -> Dağıtım Montajı -> Ekle -> Java Derleme Yolu Girişleri -> Sonraki ->

İleri'yi tıkladıktan sonra, İleri ve Fnish devre dışı seçenekleri ile sadece boş bir pencere.Şimdi ne yapabilirim?


1

Aynı problemle karşılaştım.

Sunucuyu yapılandırmadan kaldırdım ve sunucu çalışma zamanı ortamına ekleyerek eclipse'i yeniden başlattıktan sonra geri ekledim.


1

Benim için düzeltme, webapp modülümü> Maven> Projeyi Güncelle'yi sağ tıklamaktı


1

Bu durum için en uygun olanı tercih ettiğim hızlı bir çözüm, çalışma alanınızın .metadata klasörünü silmek ve projelerinizi tekrar içe aktarmaktır. Diğer tüm seçenekleri denerseniz başarıyı garanti etmez. Bazen yukarıdaki çözümler bu yapılandırmayı düzeltmek için değerli saatlerinizi harcayacağınız zamanlarda işe yarar.

Bir gün iş istasyonumu temizlemeye karar verdim.Projeleri farklı müşterilere göre uygun klasörlere yerleştirdim. Sonuç olarak hepsi berbat oldu. Bütün bir gün geçirdikten sonra sabit bir çalışma alanına dönüşmedi. Ertesi gün çalışma alanının .metadata klasörünü sildim ve tüm projeleri tekrar içe aktardım. Bingo her şey hazır.


1

<packaging>war</packaging>Maven kullanıyorsanız pom.xml'nizi koyun . Bu durumda, belki kavanoz ambalajı ile

Dağıtım Meclisi'nde Maven kütüphaneniz olmalı


0

"Proje yapılandırmasını güncelle" seçeneğini kullanarak projenin oluşturma yolunu bozdu.

Düzeltme: "Yapılandırma yolunu yapılandır ..." menüsünü açın (projeye sağ tıklayın) ve her kaynak klasör için Dahil Edilen / Hariç Tutulan seçenekleri düzeltin. Bu benim için çalıştı.


0

Birçok durumda Java faset problemi, jdk veya jre veya jsp versiyonu maven proje yüzünden farktır.


0

Benim için asıl çözüm "WTP için m2e-wtp - Maven entegrasyonu" nu kurmaktı. Bu durumda Marcelo'nun çözümü gerekli değildir.


0

yukarıdakilerden hiçbiri işe yaramazsa, .class dosyasını dinleyici sınıfından kaldırın.

<listener>
<listener-class>

org.springframework.web.context.ContextLoaderListener.class

</listener-class>
</listener>

0

Bu benim için çalışıyor ..

Maven web projesine sağ tıklayın Açılan pencerenin sol tarafındaki 'Dağıtım Montajı' seçeneğini tıklayın Açılan pencerenin sağ tarafındaki 'Ekle ...' düğmesine tıklayın Şimdi bir açılır pencere daha görünür (Yeni Montaj Dizinleri) 'Java Derleme yol girişleri'ni tıklayın' İleri 'düğmesini tıklayın' Bitir 'düğmesini tıklayın, şimdi otomatik olarak yeni Assemby Dizinleri açılır penceresini kapatın Şimdi' Uygula 'düğmesine tıklayın ve Tamam Düğmesi Web uygulamanızı çalıştırın


0

Gradle kullanarak bir IntelliJ projesinde Hazırda Bekletme eşlememde değişiklik yaptıktan sonra bu başıma geldi. Sadece projeyi yeniden inşa etmek benim için çalıştı.


0

Buna çeyrek kez birkaç kez rastladım. Bu kez git fark minimal bir değişiklik özeti vardı ve tutulma içinde bir sıfırlama sınıf yolu (benim WEB-INF / lib bağımlılığı eksik) sorunu izledi. Bu, ebeveyn / kardeş maven projelerini çektiğimde veya çıkardığımda ortaya çıkıyor.

Tomcat web kapsayıcısı lib'e bahar kavanozlarınızı eklemekten bahsediyor - bu tamam ve çoğu EE sunucusunun çalışma şekli. Ancak tomcat'teki sınıf yükleyici ağacına baharı yerleştirerek savaş bağlamınızın sınıf yükleyici seviyesinden daha yüksek koşacağınızı unutmayın. Kütleleri savaş başına düşük seviye sınıf yükleyicide bırakmanızı tavsiye ederim.

Tutulmada yapısal bir proje değişikliğinden sonra kesilmiş bir .classpath'tan sonra aşağıdakileri görüyoruz.

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

Sınıf yolum sıfırlandı ve WEB-INF / lib bağımlılığı kaldırıldı.

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

geri koy

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

ve iyi olacaksın.

teşekkür ederim / michael


0

Bunu derleme yolumda lib olduğunda, ancak dağıtım derlememde değilken aldım. Ayrıca eksik context.xml vardı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.