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

290

Saya memasukkan ini dalam Build Path :

  • semua Spring libs
  • Perpustakaan Apache Tomcat 7.0

Proyek masih gagal saat startup:

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)

Di org.sprintframework.web-3.1.0.M1.jar, saya bisa melihat org.springframework.web.context.ContextLoaderListener.

Seseorang di Google mengatakan itu spring.jarharus dimasukkan tetapi saya tidak melihat ada spring.jardalam distribusi 3.x.

Eclipse 3.6.2
Tomcat 7

Sunting: Seseorang di Forum Musim Semi (offline) mengatakan "Perbarui dependensi secara otomatis" harus diperiksa di Project Properties tetapi saya tidak melihat hal seperti itu di properti proyek.

emeraldhieu
sumber
1
tutup proyek, buat tempat kerja baru, pastikan ketergantungan pada POM. Saya harus menghadapi masalah ini tetapi diperbaiki setelah koreksi dalam dependensi
MLS
Bisakah Anda memposting konten folder .war / lib Anda. Atau setidaknya semua yang ada. * Pegas. * \. Toples.
Simeon
Bahkan jika saya menambahkan ketergantungan berikut ke pom, saya masih mengalami kesalahan yang sama. <dependency> <groupId> org.springframework </groupId> <artifactId> spring-web </artifactId> <version> {Spring-Version} </version> </dependency> Apa yang saya lakukan adalah seperti yang disarankan orang lain, saya menambahkan pakar dependensi ke majelis penempatan. Dan ketika saya memperbarui pom dengan dependensi lain dan melakukan proyek pembaruan, kesalahan terus terjadi. Memeriksa majelis penyebaran menunjukkan saya ketergantungan maven semakin ditendang keluar. Saya harus mengulangi proses di atas lagi.
Tadele Ayelegn
1
Solusi ini paling berhasil. Tambahkan dependensi ke perakitan penempatan.
lokesh

Jawaban:

777

Saya memiliki masalah serupa ketika menjalankan aplikasi web pegas di tomcat yang dikelola Eclipse. Saya memecahkan masalah ini dengan menambahkan dependensi pakar dalam perakitan penempatan web proyek.

  1. Buka properti proyek (mis., Klik kanan pada nama proyek di penjelajah proyek dan pilih "Properti").
  2. Pilih "Majelis Penempatan".
  3. Klik tombol "Tambah ..." di margin kanan.
  4. Pilih "Java Build Path Entries" dari menu Directive Type dan klik "Next".
  5. Pilih "Ketergantungan Maven" dari menu Entri Jalur Bangun Java dan klik "Selesai".

Anda akan melihat "Ketergantungan Maven" ditambahkan ke definisi Majelis Penempatan Web.

Marcelo
sumber
6
Itulah cara Anda harus melakukannya, cara yang benar dalam gerhana.
pap
18
Saya mengalami masalah yang sama. Tapi saya tidak bisa melihat 'Deployment Assembly' di 'Properties' (dalam modul proyek pakar multimodule saya).
gtiwari333
9
Ini benar, meskipun sangat menjengkelkan. Mungkin sesuatu yang harus ditangani oleh plugin m2e, menurut saya.
RickB
10
Saya melihat Ketergantungan Maven ditambahkan ke definisi Majelis Penerapan Web tetapi saya terus mendapatkan kesalahan.
dabadaba
10
Bagaimana jika Entri Pembuatan Java Build tidak mengandung apa pun? Saya dalam kasus itu.
vdolez
117

Hal yang sama terjadi pada saya dari waktu ke waktu ketika menggunakan Eclipse WDT. Terutama frustasi ketika ini terjadi pada proyek yang tidak dimodifikasi dan bekerja sebelumnya. Inilah yang saya lakukan untuk memperbaikinya dalam skenario terakhir ini:

  1. Hentikan Tomcat (jika sedang berjalan)
  2. Buka tampilan "Server": Jendela> Tampilkan tampilan> Lainnya> Server> Server
  3. Klik kanan pada Tomcat Server> Clean Tomcat Work Directory.
  4. Klik kanan pada Tomcat Server> Clean
  5. Mulai ulang server

Ini biasanya memperbaiki masalah yang Anda sebutkan.

Chepech
sumber
3
Ada laporan bug untuk situasi tertentu ( bugs.eclipse.org/bugs/show_bug.cgi?id=365748 ). Pengembang Eclipse membutuhkan lebih banyak informasi tentangnya dan cara untuk mereproduksi masalah.
Chucky
1
baik ini solusi fleksibel untuk semua, jawaban ini harus ditandai sebagai jawaban. Good work Chepech
Java Pertanyaan
3
Ini benar-benar solusi paling sederhana untuk masalah ini. Terima kasih Chepech!
Badal
2
Ini tidak membantu saya menggunakan eclipse 4.4. Saya harus menggunakan metode Susie untuk menghapus / menambahkan penyebaran ke kucing jantan. Saya sedang memantau folder penyebaran kucing jantan saat melakukan pembersihan. Tidak tahu mengapa pembersihan tidak membersihkan folder penempatan.
Blessed Geek
1
Majelis penyebaran adalah cara yang tepat untuk melakukannya, tetapi jika tidak berhasil karena beberapa korupsi atau yang lainnya, pembersihan ini sebenarnya memperbaikinya.
Calabacin
26

Anda dapat mencoba "Bersihkan Direktori Pekerjaan Tomcat" atau cukup "Bersihkan ..". Ini seharusnya membuang semua status yang diterbitkan dan menerbitkan ulang dari awal.

Mashrur
sumber
Terima kasih untuk solusi ini! Jawaban yang diterima di atas tidak menyelesaikan masalah ini untuk saya, tetapi jawaban Anda.
GreenTurtle
25

Saya menggunakan IntelliJ IDEA, kompilasi berhasil, tetapi ketika memulai Tomcat, dikatakan:

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

Pada awalnya, saya pikir JAR itu hilang, tetapi sudah ada di tempatnya.

Solusi:, File > Project Structure > Artifactsdi Output Layoutklik dua kali di panel kanan Available Elementsperpustakaan bernama seperti Maven:..., itu akan dipindahkan ke WEB-INF/libdi panel kiri.

Terima dan mulai ulang Tomcat.

乌鸦 不会 飞
sumber
Jawaban ini tidak persis relevan untuk pertanyaan yang diajukan karena OP menggunakan Eclipse
Adam Michalik
10
Tapi itu membantu saya.
udaybhaskar
8

Ini pasti masalah yang terkait Eclipse. Hal yang berhasil bagi saya adalah membuat server baru di tab server gerhana. Kemudian jalankan aplikasi Anda di server baru ini, itu akan berfungsi.

Aditya Gaikwad
sumber
7

Jika semua yang disebutkan di atas tidak berfungsi coba yang berikut ini. Ini berhasil untuk saya.

Hapus proyek Anda dari server> Mulai ulang server> Tambahkan proyek Anda ke server> Mulai ulang server.

Instruksi rinci:

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

Saya menghadapi masalah yang sama untuk proyek gerhana yang dikonfigurasi untuk runtime Tomcat 7

Klik kanan pada proyek dan pergi ke properti proyek. Klik Majelis Penempatan. Saya bisa melihat bahwa toples pustaka pegas yang saya buat selama waktu kompilasi dengan pustaka pengguna tidak ada. Cukup tambahkan toples dan Anda seharusnya tidak melihat kesalahan di konsol selama kucing jantan memulai

abhi
sumber
5

Jika Anda menggunakan pakar, mungkin proyek belum dibangun. Pertama lakukan, mvn clean packagelalu coba pekerjakan kembali.

gouki
sumber
Eclipse 3.6.2 + Tomcat 7
emeraldhieu
4

Solusi untuk Eclipse Luna:

  1. Klik kanan pada proyek web pakar
  2. Klik 'Properti'menu
  3. Pilih 'Unit Penempatan' di sebelah kiri jendela yang muncul
  4. Klik tombol 'Tambah ...' di sebelah kanan jendela yang muncul
  5. Sekarang muncul satu lagi jendela sembulan (New Assembly Directivies)
  6. Klik 'Entri jalur pembuatan Java'
  7. Klik Tombol 'Selanjutnya'
  8. Klik Tombol 'Selesai', sekarang secara otomatis menutup jendela popup Assemby Directivies Baru
  9. Sekarang klik Tombol 'Terapkan' dan Tombol OK
  10. Jalankan aplikasi web Anda
Radhakrishnan S
sumber
4

Jika Anda menggunakan IntelliJ IDEA, dan menggunakan aplikasi di Tomcat Server, dikatakan: Di bawah menu File -> pilih struktur proyek -> klik artefak -> pilih stoples Anda dan klik kanan -> masukkan WEB \ lib -> restart servermasukkan deskripsi gambar di sini

harun ugur
sumber
3

Sebenarnya ini adalah masalah Tomcat. Cukup buka folder 'lib' proyek Anda dan salin semua stoples terkait 'Spring' Anda ke dalam ini. Perbarui proyek Anda dan Anda semua baik-baik saja. Masalah ini terkadang bertahan karena kucing jantan tidak dapat menemukan kelas inti Spring.

Rahul Sharma
sumber
2

Saya juga memiliki kesalahan yang sama. Saya belum menambahkan ketergantungan di bawah ini pada file POM saya.

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

Tapi porject saya digunakan untuk menjalankan bahkan sebelum saya menambahkan ketergantungan ini. Tetapi pada satu titik berhenti dan mulai memberikan kesalahan yang sama di atas.

Jika ada yang tidak bisa menyelesaikan kesalahan ini, mereka juga bisa menyelesaikannya dengan tautan ini


sumber
1
<dependency> <groupId> org.springframework </groupId> <artifactId> spring-web </artifactId> <version> 4.1.6.RELEASE </version> </dependency> Menambahkan ini membantu saya menyelesaikan kesalahan ini.
Ashutosh S
2

Saya memiliki masalah yang sama. Saya mengatasinya dengan menambahkan ketergantungan spring-web di pom saya. Pastikan Anda menggunakan semi-web jar yang memiliki ContextLoaderListener kelas meluas ContextLoader alat ServletContextListener dan berada di org.springframework.web.context paket. Saya menggunakan 3.0.4.RELEASE

Asif Khan
sumber
1

Saya mencoba

  • proyek bersihkan mvn
  • bersih
  • membersihkan direktori kerja tomcat secara otomatis
  • perbarui dependensi

Satu-satunya hal yang berfungsi setidaknya untuk sementara adalah menambahkan Maven Dependencies ke definisi Majelis Penerapan Web

Tetapi ini tidak berhasil selamanya! Setelah beberapa hari berhenti bekerja. Solusi saya adalah menghapus Ketergantungan Maven, menerapkan perubahan, dan menambahkan Ketergantungan Maven lagi.

Saya menggunakan - eclipse Juno - embedded maven - tomcat 7

Volker Demel
sumber
1

Untuk pengguna gradle, Ini berfungsi dengan langkah-langkah berikut

1) Berhenti dan Hapus tomcat server dari Servers Tab di eclipse

gerhana tomcat tab

2) bersihkan webapp dan direktori kerja dari instalasi tomcat , (Referensi, Bagaimana-Untuk: Hapus cache Tomcat dan perbaiki masalah JSP yang sudah usang )

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

3) proyek bersih dan eclipsify menggunakan alat membangun

$ ./gradlew clean eclipse// jalankan perintah masing-masing untuk mvnpengguna,$ mvn clean package

4) konfigurasikan server Tomcat baru di gerhana, dan jalankan proyek lagi.

prayagupd
sumber
1

saya juga menghadapi masalah yang sama .... dan diselesaikan dengan mengikuti langkah-langkah di bawah ini:

RC (klik kanan pada proyek web) -> properties -> Deployment Assembly -> Add -> Java Build Path Entries -> Next -> pilih file jar yang hilang -> next -> finish

Aplikasi berjalan dengan sukses ...

Neel
sumber
Saya memiliki kesalahan OP, tetapi tidak ada file jar yang hilang dalam perakitan penempatan saya.
Blamkin86
1

Saya memiliki masalah yang sama, dan saya telah mengatasinya menggunakan langkah-langkah yang disebutkan di atas. Tetapi tidak ketika saya memiliki masalah ini lagi dan saya mencoba yang berikut,

RC (klik kanan pada proyek web) -> properties -> Deployment Assembly -> Add -> Entri Path Build Java -> Next ->

setelah mengklik berikutnya hanya jendela kosong dengan opsi Berikutnya dan Fnish dinonaktifkan. Apa yang bisa saya lakukan sekarang?

Geo Thomas
sumber
1

Saya menghadapi masalah yang sama.

Baru saja menghapus server dari konfigurasi dan menambahkannya kembali setelah memulai ulang gerhana dengan menambahkannya ke lingkungan runtime server.

Ramashi
sumber
1

Bagi saya perbaikannya adalah dengan mengklik kanan pada modul aplikasi web saya> Maven> Perbarui Proyek

Bakker
sumber
1

Salah satu solusi cepat yang saya sukai yang paling cocok untuk situasi ini adalah cukup menghapus folder .metadata dari ruang kerja Anda dan mengimpor proyek Anda lagi. Jika Anda mencoba semua opsi lain, itu tidak akan menjamin kesuksesan. Terkadang solusi di atas berfungsi kadang-kadang Anda akan menghabiskan waktu berharga Anda untuk memperbaiki konfigurasi ini.

Suatu hari saya memutuskan untuk membersihkan stasiun kerja saya. Saya mengatur proyek ke folder yang sesuai menurut klien yang berbeda. Akibatnya semua jadi kacau. Setelah menghabiskan sepanjang hari itu tidak berakhir di ruang kerja tetap. Hari berikutnya saya cukup menghapus folder .metadata di ruang kerja dan mengimpor semua proyek lagi. Bingo siap.

biswarup bannerjee
sumber
1

Masukkan <packaging>war</packaging>pom.xml Anda jika Anda menggunakan Maven. Kalau begitu, mungkin dengan kemasan jar

Anda harus memiliki Maven libs di Deployment Assembly

Robson Martins
sumber
0

Menggunakan "Perbarui configuartion proyek" mengacaukan jalur pembangunan proyek.

Perbaiki: Buka menu "configure build path ..." (klik kanan pada proyek) dan perbaiki opsi Termasuk / Dikecualikan untuk setiap folder sumber. Itu berhasil bagi saya.

kiwifrog
sumber
0

Dalam banyak kasus Ini adalah masalah segi java, versi jdk atau jre atau jsp berbeda dari wajah proyek pakar.

Ali.Mojtehedy
sumber
0

Solusi sebenarnya bagi saya adalah menginstal "m2e-wtp - integrasi Maven untuk WTP". Solusi dari Marcelo tidak perlu dalam kasus itu.

Kristen
sumber
0

jika tidak ada yang berhasil, hapus kelas. dari kelas pendengar yaitu

<listener>
<listener-class>

org.springframework.web.context.ContextLoaderListener.class

</listener-class>
</listener>
Abdullah Alshammari
sumber
0

Ini bekerja untuk saya ..

Klik kanan pada proyek web pakar Klik 'Properties'menu Pilih' Majelis Penerapan 'di sisi kiri jendela muncul Klik' Tambah ... 'Tombol di sisi kanan jendela muncul Sekarang muncul satu lagi jendela sembulan (New Assembly Directivies) Klik 'Java Build path entries' Klik 'Next' Tombol Klik 'Selesai' Tombol, sekarang secara otomatis menutup jendela popup Assemby Directivies Baru Sekarang klik Tombol 'Terapkan' dan Tombol Ok Jalankan aplikasi web Anda

pengguna6425667
sumber
0

Ini terjadi pada saya setelah saya membuat perubahan pada pemetaan Hibernate saya di proyek IntelliJ menggunakan Gradle. Cukup dengan membangun kembali proyek itu bekerja untuk saya.

Sabar Mpofu
sumber
0

Saya mengalami ini beberapa kali seperempat. Kali ini saya memiliki ringkasan perubahan minimal di git diff saya dan melacak masalah ke reset classpath (hilang WEB-INF / lib dependensi) di gerhana. Ini tampaknya terjadi setiap kali saya menarik atau mengeluarkan proyek pakar orangtua / saudara kandung.

Ada yang menyebutkan menambahkan toples musim semi Anda ke lib web container tomcat - ini ok dan merupakan cara kebanyakan server EE dijalankan. Namun perlu diketahui bahwa dengan menempatkan pegas lebih tinggi di pohon classloader pada kucing jantan Anda akan berlari lebih tinggi dari tingkat classloader dari konteks perang Anda. Saya sarankan Anda meninggalkan libs di classloader per / perang tingkat yang lebih rendah.

Kita melihat berikut ini setelah .class truncated setelah proyek struktural perubahan gerhana.

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

Classpath saya telah direset dan dependensi WEB-INF / lib telah dihapus.

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

taruh kembali

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

dan kamu akan baik-baik saja.

terima kasih / michael

Michael O'Brien
sumber
0

Saya mendapatkan ini ketika saya memiliki lib di jalur build saya, tetapi tidak di majelis penempatan saya. Juga ketika saya memiliki context.xml yang hilang.

Noumenon
sumber