ClassNotFoundException при загрузке ContextLoaderListener - PullRequest
9 голосов
/ 18 мая 2011

Я работаю над веб-приложением, используя Spring 3.0, Hibernate. Когда я пытаюсь развернуть мое приложение на WAS 7.0, оно выдает мне ошибку - Не удалось загрузить слушатель: org.springframework.web.context.ContextLoaderListener]: java.lang.ClassNotFoundException:

Вот как выглядит мое веб-приложение:

<?xml version="1.0" encoding="UTF-8"?>
   <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>ABC</display-name>
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

Выдается следующее исключение:

com.ibm.ws.webcontainer.webapp.WebApp logError SRVE0293E: [Servlet Error]-[Failed to load listener: org.springframework.web.context.ContextLoaderListener]: java.lang.ClassNotFoundException: class java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
at java.beans.Beans.instantiate(Beans.java:190)
at java.beans.Beans.instantiate(Beans.java:75)
at com.ibm.ws.webcontainer.webapp.WebApp.loadListener(WebApp.java:1643)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.loadListener(WebAppImpl.java:671)
at com.ibm.ws.webcontainer.webapp.WebApp.loadLifecycleListeners(WebApp.java:1554)

Итак, что-то не так в web.xml?

Редактировать: Извините, я не упомянул, я использую Maven, чтобы получить банки. У меня есть требуемый файл JAR в папке WEB-INF, то есть org.springframework.web.context

Ответы [ 9 ]

11 голосов
/ 27 сентября 2011

Взгляните на следующую ссылку
http://forum.springsource.org/showthread.php?60812-ClassNotFoundException-org.springframework.web.con-text.ContextLoaderListener

В нем говорится, что эту проблему можно исправить, перейдя в свойства проекта -> Сборка развертывания и добавив запись пути построения зависимости Maven

2 голосов
/ 19 мая 2011

У вас неверное определение зависимости spring-web вместо:

<dependency>
<groupId>org.springframework</groupId>
<artifactId>org.springframework.web</artifactId>
<version>${org.springframework.version}</version>
</dependency>

Вы должны иметь то, что я написал в комментариях:

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>

ArtifactId равен spring-web. ${spring.version} конечно, это не важно, просто убедитесь, что оно соответствует определенной вами версии версии.

2 голосов
/ 18 мая 2011

класс java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
в java.beans.Beans.instantiate (Beans.java:190)

Является ли файл .jar, содержащий org.springframework.web.context.ContextLoaderListener, на пути к классам?

1 голос
/ 17 июля 2016
Project> properties> deployment assembly> add > referenced project class path entries> maven dependencies 

Развернуть снова.У меня работает

1 голос
/ 18 мая 2011

java-движку тоже не удается найти класс (как ваше исключение говорит: java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener)

java будет искать класс по пути к классам.у вас есть папка в структуре вашего веб-приложения (на компьютере, где работает ваш 'was' -сервер), куда вы можете поместить jar-файлы, содержащие классы.вам нужно поместить spring.jar или spring-web.jar в эту папку.Я предполагаю, что папка называется lib, и она, вероятно, будет расположена в папке с именем WEB-INF, но я не уверена, потому что я не знаю, «был».

после вас 'поместив туда jar-файл, вам, вероятно, потребуется перезапустить ваш web / app-сервер.надеюсь это поможет!^^

1 голос
/ 18 мая 2011

Возьмите все фляги, которые вы добавили в свой проект, и убедитесь, что они также находятся в вашем каталоге WEB-INF / lib.Именно здесь ваш сервер смотрит во время выполнения, когда ссылаются на сторонние библиотеки.Они не помещаются туда автоматически;но есть способы, которыми вы можете автоматизировать это (например, используя скрипт ANT или что-то в этом роде).Просто чтобы все заработало, вы можете просто вручную скопировать / вставить файлы jar в этот каталог.Если вы добавляете их в этот каталог за пределами вашей IDE, убедитесь, что вы обновили папку изнутри вашей IDE после размещения файлов там.

0 голосов
/ 29 января 2018

У меня была точно такая же проблема.Надеюсь, это кому-нибудь поможет.Некоторые из моих файлов зависимостей отсутствовали в моей папке WEB-INF / lib, но были в библиотеках со ссылками.Мне пришлось снова выполнить чистую установку maven, чтобы убедиться, что все фляги помещены в папку lib.Проблема может быть и в вашем файле pom.xml, если он не может правильно вставить банки.Так что следите за этим.

Проект-> Очистка и сборка Maven -> Обновление папки lib и проверка наличия всех jar-файлов (или конкретного jar-файла, генерирующего исключение)

0 голосов
/ 17 мая 2013

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

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>${org.springframework-version}</version>
</dependency>

журнал ошибок:

com.ibm.ws.webcontainer.annotation.WASAnnotationHelper collectClasses unable to instantiate class
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
SRVE0293E: [Servlet Error]-[Failed to load listener: org.springframework.web.context.ContextLoaderListener]: 
java.lang.ClassNotFoundException: class java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
loadLifecycleListeners SRVE0279E: Error occured while processing global listeners for the application {0}: {1}
java.lang.NullPointerException
at com.ibm.ws.webcontainer.annotation.WASAnnotationHelper.inject(WASAnnotationHelper.java:266)
0 голосов
/ 02 октября 2011

Дейв прав!Все необходимые JAR-файлы вам нужны в двух местах:

  1. Если вы видите исключения при запуске сервера, то у вас нет необходимых JAR-файлов в WEB-INF / lib dir, поэтомувам нужно хранить все JAR-файлы.

  2. Если вы видите какие-либо ошибки компиляции в вашем Java-коде, значит, ваш путь сборки не настроен правильно.Сохраните все файлы JAR, которые вы поместили в WEB-INF / lib в пути сборки, как «Библиотеки со ссылками».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...