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


290

Я включив їх у шлях нарощування :

  • всі весняні губки
  • Бібліотека Apache Tomcat 7.0

Проект все ще не працює під час запуску:

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)

У org.sprintframework.web-3.1.0.M1.jar, я бачу org.springframework.web.context.ContextLoaderListener.

Хтось із Google каже, що його spring.jarслід включити, але я не бачу жодного spring.jarв 3.x розповсюдженні.

Eclipse 3.6.2
Tomcat 7

Редагувати: хтось із Весняного форуму (офлайн) сказав, що "Автоматичне оновлення залежностей" слід перевірити в "Властивості проекту", але нічого подібного у властивостях проекту я не бачу.


1
закрийте проект, створіть нове робоче місце, переконайтесь у залежності від POM. мені довелося зіткнутися з цією проблемою, але вона була виправлена ​​після виправлення залежностей
MLS

Чи можете ви опублікувати вміст папки .war / lib, будь ласка. Або принаймні все, що є. * Весна. * \. Баночка.
Симеон

Навіть якщо я додав наступну залежність до пом, я все ще мав ту саму помилку. <dependency> <groupId> org.springframework </groupId> <artifactId> spring-web </artifactId> <version> {Spring-Version} </version> </dependency> Що я робив, як і запропонували інші, я додав мавен залежність від складання розгортання. І коли я оновлюю pom з іншими залежностями та роблю проект maven> update, помилка продовжує надходити. Перевірка монтажу розгортання показує, що у мене залежність від найвищого рівня не виходить. Мені довелося переробити вищезазначений процес ще раз.
Tadele Ayelegn

1
Це рішення працювало більшість. Додайте залежності до складання розгортання.
lokesh

Відповіді:


777

У мене була подібна проблема під час запуску весняного веб-додатку в Tomcat, керованому Eclipse. Я вирішив цю проблему, додавши основні залежності у складі веб-розгортання проекту.

  1. Відкрийте властивості проекту (наприклад, клацніть правою кнопкою миші на ім'я проекту в провіднику проекту та виберіть "Властивості").
  2. Виберіть "Асамблея розгортання".
  3. Натисніть кнопку "Додати ..." праворуч.
  4. Виберіть "Записи шляху побудови Java" у меню Тип директиви та натисніть "Далі".
  5. Виберіть "Maven Dependpendations" у меню записів Java Build Path Entries та натисніть "Готово".

Ви повинні побачити "Maven Dependitions", доданий до визначення Асамблеї веб-розгортання.


6
Це так, як ви повинні це зробити, правильний шлях у затемненні.
пап

18
У мене була така ж проблема. Але я не можу побачити "Асамблею розгортання" у "Властивості" (в модулі мого багатомодульного проекту Maven).
gtiwari333

9
Це правильно, хоча сильно дратує. Можливо, щось, на мою думку, повинен подбати плагін m2e.
RickB

10
Я бачу, що Maven Dependitions додано до визначення Асамблеї веб-розгортання, але я отримую помилку.
dabadaba

10
Що робити, якщо записи Java Build Path не містять нічого? Я в такому випадку.
vdolez

117

Час від часу трапляється зі мною під час використання Eclipse WDT. Особливо це засмучує, коли це відбувається з немодифікованим і раніше працюючим проектом. Це я роблю, щоб виправити це в останньому сценарії:

  1. Зупиніть Tomcat (якщо він працює)
  2. Відкрийте подання "Сервери": Вікно> Показати перегляд> Інше> Сервер> Сервери
  3. Клацніть правою кнопкою миші на сервер Tomcat> Очистити робочий каталог Tomcat.
  4. Клацніть правою кнопкою миші сервер Tomcat> Очистити
  5. Перезавантажте сервер

Зазвичай це вирішує проблему, яку ви згадуєте.


3
Для цієї конкретної ситуації є звіт про помилки ( bugs.eclipse.org/bugs/show_bug.cgi?id=365748 ). Розробники Eclipse потребують додаткової інформації про нього та способів відтворення проблеми.
Чаккі

1
добре це гнучке рішення для всіх, ця відповідь повинна бути позначена як відповідь. Гарна робота Чепеч
Запитання Java

3
Це справді найпростіше рішення цієї проблеми. Дякую Чепеч!
Бадал

2
Це не допомогло мені за допомогою затемнення 4.4. Мені довелося використовувати метод видалення / додавання розгортання Сузі в tomcat. Я контролював папку розгортання tomcat під час чищення. Не знаєте, чому прибирання не очищає папку розгортання.
Благословенний гек

1
Збірка розгортання - це правильний спосіб зробити це, але якщо він не працює через певну корупцію чи щось подібне, ця очистка насправді це виправляє.
Калабацин

26

Ви можете спробувати "Clean Tomcat Work Directory" або просто "Очистити ..". Це повинно було відкинути всі опубліковані стани та опублікувати з нуля.


Thx для цього рішення! Прийнята вище відповідь не вирішила це питання для мене, але ваша зробила.
GreenTurtle

25

Я використовував IntelliJ IDEA, компіляція успішна, але при запуску Tomcat вона говорить:

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

На початку я думав, що JAR відсутній, але він був на місці.

Рішення: File > Project Structure > Artifactsу Output Layoutподвійному клацанні на правій панелі Available Elementsбібліотека, названа як Maven:..., вона буде переміщена до WEB-INF/libлівої панелі.

Прийняти та перезапустити Tomcat.


Ця відповідь не є точно актуальною для поставленого питання, оскільки ОП використовував Eclipse
Адам Міхалик

10
Але це мені допомогло.
удайбхаскар

8

Це, безумовно, питання, пов’язане із затемненням. Що для мене працювало - це створити новий сервер на вкладці сервера затемнення. Потім запустіть додаток на цьому новому сервері, воно повинно працювати.


7

Ви повинні використовувати принаймні версію 3.2.8.RELEASESpring-core.

Для Maven встановіть у своєму pom.xml:

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

Джерело: http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/cglib/core/SpringNamingPolicy.html , починаючи з 3.2.8.


7

Якщо все згадане вище не працює, спробуйте наступне. Це працювало для мене.

Видаліть проект із сервера> Перезапустити сервер> Додати проект на сервер> Перезапустити сервер.

Детальна інструкція:

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

Клацніть правою кнопкою миші на проект та перейдіть до властивостей проекту. Клацніть на збірку розгортання. Я міг помітити, що мої весняні банки з бібліотеками, які я створював під час компіляції з бібліотекою користувачів, відсутні. Просто додайте банки, і ви не побачите помилок у консолі під час запуску tomcat


5

Якщо ви використовуєте maven, можливо, проект ще не побудований. Спочатку mvn clean packageспробуйте повторно розблокувати.


Eclipse 3.6.2 + Tomcat 7
смарагдхіе

4

Рішення для Eclipse Luna:

  1. Клацніть правою кнопкою миші на веб-проект maven
  2. Натисніть меню "Властивості"
  3. Виберіть "Збірка розгортання" у лівій частині вікна, що з'явилося
  4. Натисніть кнопку "Додати ..." у правій частині вискочившого вікна
  5. Тепер з’явиться ще одне спливаюче вікно (Нові вказівки щодо складання)
  6. Клацніть «Записи шляху побудови Java»
  7. Натисніть кнопку "Далі"
  8. Натисніть кнопку «Готово», тепер атоматично закрийте спливаюче вікно New Assamy Directivies
  9. Тепер натисніть кнопку "Застосувати" та кнопку ОК
  10. Запустіть веб-додаток

4

Якщо ви використовуєте IntelliJ IDEA та розгортаєте додаток на сервері Tomcat, він говорить: У меню Файл -> виберіть Структура проекту -> Виберіть артефакт -> Виберіть ваші банки та клацніть правою кнопкою миші -> Поставте в WEB \ lib -> Перезавантажте сервервведіть тут опис зображення


3

Насправді це проблема Tomcat. Просто перейдіть у папку "lib" свого проекту та скопіюйте всі ваші "Spring" банки в цю. Оновіть свій проект, і вам все добре. Ця проблема колись зберігається, оскільки tomcat не в змозі знайти основні класи Spring.


2

У мене теж була така ж помилка. Я не додав нижчезалежність у свій файл POM.

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

Але мій компонент працював ще до того, як я додав цю залежність. Але в один момент він зупинився і почав давати ту саму вищезгадану помилку.

Якщо хтось не зміг вирішити цю помилку, він також може вирішити за цим посиланням


1
<dependency> <groupId> org.springframework </groupId> <artifactId> spring-web </artifactId> <version> 4.1.6.ВИПУСК </version> </dependency> Додавання цього допомогло мені вирішити цю помилку.
Ашутош S

2

У мене було те саме питання. Я вирішив це, додавши залежність весна-веб в мою пом. Переконайтеся , що ви використовуєте пружинний веб - банку , який має ContextLoaderListener клас розширює ContextLoader знаряддя і контекст сервлет проживає в пакеті org.springframework.web.context. Я використовував 3.0.4. РЕЛІЗ


1

Я спробував

  • проект чистого mvn
  • чистий
  • очистити робочий каталог Tomcat Автоматично
  • оновити залежності

Єдине, що принаймні тимчасово працювало - це додати залежність Maven до визначення Асамблеї веб-розгортання

Але це не працює назавжди! Через пару днів він перестає працювати. Моє рішення полягало в тому, щоб видалити Maven Dependpendents, застосувати зміни та знову додати Maven Dependunities знову.

Я використовую - затемнення Juno - вбудований maven - tomcat 7


1

Для користувачів Gradle це працює з наступними кроками

1) Зупинення та видалення сервера tomcat із вкладки « Сервери » в затемненні

затемнення tomcat вкладка

2) очистити веб-сайт і робочий каталог від установки tomcat , (Довідка, як: видалити кеш Tomcat і виправити застарілі проблеми JSP )

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

3) очистити та затьмарити проект за допомогою інструменту збирання

$ ./gradlew clean eclipse// запустити відповідну команду для mvnкористувачів,$ mvn clean package

4) налаштуйте новий Tomcat-сервер у затемненні та запустіть проект ще раз.


1

Я теж зіткнувся з тією ж проблемою .... і вирішився, виконавши наведені нижче кроки:

RC (клацніть правою кнопкою миші на веб-проекті) -> властивості -> Збірка розгортання -> Додати -> Записи Java Build Path -> Далі -> виберіть файли jar, яких немає -> наступний -> закінчити

Додаток успішно працює ...


У мене є помилка OP, але в моїй збірці розгортання не було відсутніх файлів jar.
Blamkin86

1

У мене така ж проблема, і я вирішив її, використовуючи вказані вище кроки. Але ні, коли в мене з’явиться ця проблема ще раз, і я спробую наступне,

RC (клацніть правою кнопкою миші на веб-проекті) -> властивості -> Збірка розгортання -> Додати -> Записи шляху побудови Java -> Далі ->

після натискання на наступне його єдине порожнє вікно з опціями «Далі» та «Захопити» відключено. Що я можу зробити зараз?


1

Я зіткнувся з тією ж проблемою.

Просто вилучив сервер із конфігурації та додав його назад після перезапуску затемнення, додавши його до середовища виконання сервера.


1

Для мене виправлення полягало в тому, щоб клацнути правою кнопкою миші мій модуль webapp> Maven> Update Project


1

Одне швидке рішення, яке я віддаю перевагу, яке мені найбільше підходить для цієї ситуації, - просто видалити папку .metadata з вашого робочого простору та знову імпортувати свої проекти. Якщо ви спробуєте всі інші варіанти, це не гарантує успіху. Іноді вищезазначені рішення спрацьовують колись, ви витратите свої дорогоцінні години, щоб виправити цю конфігурацію.

Одного разу я вирішив прибрати свою робочу станцію. Я влаштував проекти у відповідні папки відповідно до різних клієнтів. В результаті все заплуталося. Провівши цілий день, він не опинився у встановленому робочому просторі. Наступного дня я просто видалив папку .metadata з робочого простору та знову імпортував усі проекти. Бінго все набір.


1

Покладіть <packaging>war</packaging> ваш pom.xml, якщо ви використовуєте Maven. У такому випадку, можливо, це з упаковкою з банки

У вас повинні бути Maven libs у зборі розгортання


0

Використання "Оновлення конфігурації проекту" зіпсувало шлях збирання проекту.

Виправлення: відкрийте меню "Налаштувати шлях збірки ..." (клацніть правою кнопкою миші на проект) та виправте параметри "Включені / виключені" для кожної вихідної папки. Це працювало для мене.


0

У багатьох випадках це java facet проблема, jdk або jre або jsp версія - це відмінність, ніж Maven Project face.


0

Актуальним рішенням для мене було встановлення "m2e-wtp - інтеграції Maven для WTP". У цьому випадку рішення Марсело не є необхідним.


0

якщо нічого зверху не працює, видаліть .class з класу слухача, тобто

<listener>
<listener-class>

org.springframework.web.context.ContextLoaderListener.class

</listener-class>
</listener>

0

Це працює для мене ..

Клацніть правою кнопкою миші на веб-проект maven. Клацніть на меню "Властивості" Виберіть "Збірка розгортання" у лівій частині вікна, що з'явилося. Натисніть кнопку "Додати ..." у правій частині спливаючого вікна. З'явіться ще одне спливаюче вікно (Нові вказівки щодо складання) Клацніть «Записи шляху побудови Java» Клацніть кнопку «Далі» Клікніть кнопку «Готово», тепер атоматично закрийте спливаюче вікно Нових режимів збірки. Тепер натисніть кнопку «Застосувати» та Кнопка ОК. Запустіть веб-додаток.


0

Це сталося зі мною після того, як я внесла зміни до свого відображення в сплячому режимі в проекті IntelliJ за допомогою Gradle. Просто відновлення проекту працювало для мене.


0

Я наткнувся на це пару разів на квартал. Цього разу я мав мінімальний підсумок змін у своєму git diff та відстежував проблему до скидання classpath (відсутня моя залежність WEB-INF / lib) у затемненні. Це, мабуть, трапляється кожного разу, коли я втягую або витягую проекти для батьків / братів та сестер.

Існує згадка про додавання ваших весняних банок до вкладки веб-контейнерів tomcat - це нормально, і так працює більшість серверів EE. Однак майте на увазі, що, розміщуючи весну вище в дереві завантажувачів на tomcat, ви будете працювати вище, ніж рівень завантажувача вашого контексту війни. Рекомендую вам залишити гілки у навантажувачі нижчого рівня, що перебуває на війні.

Ми бачимо наступне після усіченого .classpath після зміни структурного проекту в затемненні.

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

Мій класний шлях було скинуто, і залежність WEB-INF / lib була усунена.

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

покласти на місце

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

і вам буде добре.

дякую / Майкл


0

У мене це було, коли я мав ліб на своєму шляху побудови, але не в моєму складі розгортання. Також коли у мене відсутній контекст.xml.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.