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

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

emeraldhieu
источник
1
закройте проект, создайте новое рабочее место, удостоверьтесь в зависимостях в POM. мне пришлось столкнуться с этой проблемой, но она была исправлена ​​после исправления зависимостей
MLS
Можете ли вы опубликовать содержимое вашей папки .war / lib, пожалуйста. Или хотя бы все, что есть. * Spring. * \. Jar.
Симеон
Даже если бы я добавил следующую зависимость в pom, у меня все еще была та же ошибка. <зависимость> <groupId> org.springframework </ groupId> <artifactId> spring-web </ artifactId> <версия> {Spring-Version} </ version> </ dependency> То, что я сделал, было предложено другими, я добавил maven зависимости от сборки развертывания. И когда я обновляю pom с другими зависимостями и выполняю maven> update project, ошибка продолжает появляться. Проверка сборки развертывания показывает, что maven-зависимости выходят из строя. Мне пришлось повторить вышеописанный процесс снова.
Таделе Айленг
1
Это решение сработало для большинства. Добавьте зависимости в сборку развертывания.
Lokesh

Ответы:

777

У меня была похожая проблема при запуске весеннего веб-приложения в управляемом Eclipse коте. Я решил эту проблему, добавив maven-зависимости в сборку веб-развертывания проекта.

  1. Откройте свойства проекта (например, щелкните правой кнопкой мыши имя проекта в проводнике проекта и выберите «Свойства»).
  2. Выберите «Сборка развертывания».
  3. Нажмите кнопку «Добавить ...» на правом поле.
  4. Выберите «Записи пути компоновки Java» в меню типа директивы и нажмите «Далее».
  5. Выберите «Maven Dependencies» из меню Java Build Path Entries и нажмите «Finish».

Вы должны увидеть «Maven Dependencies», добавленные к определению сборки Web Deployment.

Marcelo
источник
6
Вот как вы должны это делать, правильный путь в затмении.
PAP
18
У меня была такая же проблема. Но я не вижу «Сборка развертывания» в «Свойствах» (в модуле моего многомодульного проекта maven).
gtiwari333
9
Это правильно, хотя очень раздражает. Возможно, что-то плагин m2e должен позаботиться, на мой взгляд.
RickB
10
Я вижу, что Maven Dependencies добавлен в определение Web Deployment Assembly, но я продолжаю получать сообщение об ошибке.
Дабадаба
10
Что делать, если записи пути сборки Java ничего не содержат? Я в этом случае.
vdolez
117

Время от времени происходит то же самое со мной при использовании Eclipse WDT. Его особенность расстраивает, когда это происходит с неизмененным и ранее работающим проектом. Вот что я делаю, чтобы исправить это в последнем сценарии:

  1. Остановите Tomcat (если он работает)
  2. Откройте представление «Серверы»: «Окно»> «Показать представление»> «Другое»> «Сервер»> «Серверы».
  3. Щелкните правой кнопкой мыши Tomcat Server> Очистить рабочий каталог Tomcat.
  4. Щелкните правой кнопкой мыши Tomcat Server> Очистить
  5. Перезагрузите сервер

Обычно это устраняет проблему, о которой вы упоминаете.

Chepech
источник
3
Для этой конкретной ситуации есть сообщение об ошибке ( bugs.eclipse.org/bugs/show_bug.cgi?id=365748 ). Разработчики Eclipse нуждаются в дополнительной информации об этом и способах воспроизведения проблемы.
Чаки
1
хорошо, что это гибкое решение для всех, этот ответ должен быть помечен как ответ. Хорошая работа Чепеч
Java Вопросы
3
Это действительно простое решение для этой проблемы. Спасибо Чепеч!
Badal
2
Это не помогло мне при использовании eclipse 4.4. Мне пришлось использовать метод удаления / добавления Сьюзи в Tomcat. Я проверял папку развертывания Tomcat при выполнении очистки. Не знаю, почему очистка не очищает папку развертывания.
Блаженный Компьютерщик
1
Сборка развертывания - это верный способ сделать это, но если она не работает из-за некоторого повреждения или чего-то подобного, эта очистка фактически исправляет это.
Calabacin
26

Вы можете попробовать «Очистить рабочий каталог Tomcat» или просто «Очистить ..». Это должно отбросить все опубликованные состояния и переиздать с нуля.

Mashrur
источник
Спасибо за это решение! Принятый ответ выше не решил эту проблему для меня, но ваш сделал.
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библиотека с именем like Maven:...будет перемещена WEB-INF/libв левую панель.

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

乌鸦 不会 飞
источник
Этот ответ не совсем уместен для заданного вопроса, так как ОП использовал Eclipse
Адам Михалик
10
Но это помогло мне.
udaybhaskar
8

Это, безусловно, проблема, связанная с Eclipse. То, что работало для меня, это создание нового сервера на вкладке Eclipse Server. Затем запустите ваше приложение на этом новом сервере, оно должно работать.

Адитья Гайквад
источник
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

Я столкнулся с той же проблемой для проекта eclipse, настроенного для среды выполнения Tomcat 7

Щелкните правой кнопкой мыши по проекту и перейдите в свойства проекта. Нажмите на сборку развертывания. Я мог заметить, что мои фляги весенней библиотеки, которые я создал во время компиляции с пользовательской библиотекой, отсутствовали. Просто добавьте банки, и вы не увидите ошибок в консоли во время запуска tomcat.

абхи
источник
5

Если вы используете Maven, возможно, проект еще не построен. Сначала сделайте, а mvn clean packageзатем попробуйте заново выполнить развертывание.

Gouki
источник
Затмение 3.6.2 + Tomcat 7
emeraldhieu
4

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

  1. Щелкните правой кнопкой мыши на веб-проекте Maven.
  2. Нажмите «Свойства» меню
  3. Выберите «Сборка развертывания» в левой части всплывающего окна.
  4. Нажмите кнопку «Добавить ...» в правой части всплывающего окна.
  5. Теперь появилось еще одно всплывающее окно (New Assembly Directivies)
  6. Нажмите «Записи пути Java Build»
  7. Нажмите кнопку «Далее»
  8. Нажмите кнопку «Готово», теперь автоматически закройте всплывающее окно «Новые направления сборки»
  9. Теперь нажмите кнопку «Применить» и кнопку «ОК»
  10. Запустите ваше веб-приложение
Радхакришнан С
источник
4

Если вы используете IntelliJ IDEA и развертываете приложение на Tomcat Server, оно говорит: В меню «Файл» -> выберите «Структура проекта» -> щелкните артефакт -> выберите ваши банки и щелкните правой кнопкой мыши -> поместите в 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> <версия> 4.1.6.RELEASE </ version> </ dependency> Добавление этой информации помогло мне решить эту ошибку.
Ашутош С
2

Я была такая же проблема. Я решил это, добавив пружинную веб-зависимость в мой pom. Убедитесь, что вы используете Spring -Web JAR, который имеет класс ContextLoaderListener, расширяет ContextLoader реализует ServletContextListener и находится в пакете org.springframework.web.context. Я использовал 3.0.4.RELEASE

Асиф Хан
источник
1

Я попробовал

  • проект чистый мвн
  • чистый
  • Очистить рабочий каталог Tomcat автоматически
  • обновить зависимости

Единственное, что сработало хотя бы временно, - это добавление зависимостей Maven в определение сборки веб-развертывания.

Но это не работает вечно! Через пару дней перестает работать. Моим решением было удалить зависимости Maven, применить изменения и снова добавить зависимости Maven.

Я использую - eclipse Juno - встроенный Maven - Tomcat 7

Фолькер Демель
источник
1

Для пользователей Gradle, он работает со следующими шагами

1) Остановите и удалите сервер Tomcat из вкладки Серверы в затмении

Eclipse Tomcat Tab

2) очистить webapp и рабочий каталог от установки tomcat , (Справка, How-To: Очистить кэш 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 в eclipse и снова запустить проект.

prayagupd
источник
1

я тоже столкнулся с той же проблемой .... и решил, выполнив следующие шаги:

RC (щелкните правой кнопкой мыши веб-проект) -> свойства -> Сборка развертывания -> Добавить -> Записи пути сборки Java -> Далее -> выбрать отсутствующие файлы jar -> далее -> закончить

Приложение успешно запущено ...

Ниль
источник
У меня ошибка OP, но в моей сборке развертывания отсутствовали файлы jar.
Blamkin86
1

У меня та же проблема, и я решил ее, используя шаги, упомянутые выше. Но нет, когда у меня снова возникает эта проблема, и я пытаюсь сделать следующее,

RC (щелкните правой кнопкой мыши на веб-проекте) -> свойства -> Сборка развертывания -> Добавить -> Записи пути сборки Java -> Далее ->

после нажатия на следующее, это только пустое окно с опциями Next и Fnish отключено. Что мне теперь делать?

Гео Томас
источник
1

Я столкнулся с той же проблемой.

Просто удалили сервер из конфигурации и добавили его обратно после перезапуска затмения, добавив его в среду выполнения сервера.

Ramashis
источник
1

Для меня исправление состояло в том, чтобы щелкнуть правой кнопкой мыши мой модуль веб-приложения> Maven> Обновить проект

TheBakker
источник
1

Одно быстрое решение, которое я предпочитаю и которое мне больше всего подходит для этой ситуации, - это просто удалить папку .metadata вашего рабочего пространства и снова импортировать ваши проекты. Если вы попробуете все другие варианты, это не гарантирует успеха. Иногда вышеупомянутые решения работают, иногда вы тратите свои драгоценные часы, чтобы исправить эту конфигурацию.

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

biswarup bannerjee
источник
1

Вставьте <packaging>war</packaging>ваш pom.xml, если вы используете Maven. В этом случае, может быть, это с упаковкой банку

У вас должны быть Maven libs в Deployment Assembly

Робсон Мартинс
источник
0

Использование «Обновить конфигурацию проекта» испортило путь сборки проекта.

Исправление: Откройте меню «Настроить путь сборки ...» (щелкните правой кнопкой мыши по проекту) и исправьте параметры «Включено / Исключено» для каждой исходной папки. Это сработало для меня.

kiwifrog
источник
0

Во многих случаях это проблема аспекта java, версия jdk или jre или jsp отличается от версии проекта maven.

Ali.Mojtehedy
источник
0

Фактическим решением для меня было установить «интеграция m2e-wtp - Maven для WTP». Решение Марсело не является необходимым в этом случае.

Кристиан
источник
0

если ничего из вышеперечисленного не работает, удалите .class из класса слушателя, т.е.

<listener>
<listener-class>

org.springframework.web.context.ContextLoaderListener.class

</listener-class>
</listener>
Абдулла Алшаммари
источник
0

Это работает для меня ..

Щелкните правой кнопкой мыши на веб-проекте maven. Выберите «Свойства». Выберите «Сборка развертывания» в левой части всплывающего окна. Нажмите кнопку «Добавить ...» в правой части всплывающего окна. Теперь появится еще одно всплывающее окно (Новые направления сборки). Нажмите кнопку «Java Build path path». Нажмите кнопку «Далее». Нажмите кнопку «Готово», теперь автоматически закройте всплывающее окно «Новые направления сборки». Теперь нажмите кнопку «Применить» и кнопку «ОК». Запустите ваше веб-приложение.

user6425667
источник
0

Это случилось со мной после того, как я внес изменения в свое отображение Hibernate в проекте IntelliJ с использованием Gradle. Просто восстановление проекта сработало для меня.

Терпение Мпофу
источник
0

Я сталкивался с этим пару раз в квартал. На этот раз у меня была минимальная сводка изменений в моем git diff, и я проследил проблему до пути к классу сброса (пропуская мою зависимость от WEB-INF / lib) в eclipse. Похоже, это происходит каждый раз, когда я вынимаю или вытаскиваю проекты родителя / брата.

Есть упоминания о добавлении ваших весенних jar-файлов в lib веб-контейнера tomcat - это нормально и так работает большинство серверов EE. Однако имейте в виду, что, поместив пружину выше в дереве загрузчика классов на tomcat, вы будете работать выше уровня загрузчика классов в контексте войны. Я рекомендую вам оставить libs в загрузчике классов более низкого уровня.

Мы видим следующее после усеченного .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

Я получил это, когда у меня была библиотека в моем пути сборки, но не в моей сборке развертывания. Также, когда у меня отсутствовал context.xml.

Ноумен
источник