ClassNotFoundException при загрузке ContextLoaderListener

Я работаю над webapp, используя spring 3.0, hibernate. Когда я пытаюсь развернуть свое приложение на 7.0, это дает мне ошибку-не удалось загрузить прослушиватель: org.springframework.сеть.контекст.ContextLoaderListener]: java.ленг.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)

Итак, есть ли что-то неправильное в интернете.в XML ?

Edit: Извините, я не упомянул, Я использую Maven для получения банок. У меня есть необходимый файл jar в папке WEB-INF, то есть org.springframework.сеть.контекст

9 ответов


посмотрите на следующее link
http://forum.springsource.org/showthread.php?60812-ClassNotFoundException-org.springframework.web.con-text.ContextLoaderListener

Он говорит, что вы можете исправить эту проблему, перейдя в Project properties - > Deployment Assembly и добавив запись Maven Dependency Build Path


класс java.ленг.ClassNotFoundException: org.springframework.сеть.контекст.ContextLoaderListener
на Яве.зернышки.Зернышки.instantiate (фасоль.java: 190)

- Это .файл jar, содержащий org.springframework.web.context.ContextLoaderListener в classpath?


у вас неправильное определение 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} конечно не важно, просто убедитесь, что он соответствует определенной строке версии.


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


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

Java будет искать класс на пути к классу. у вас есть папка в структуре веб-приложения (на компьютере, где работает ваш " был " -сервер), где вы можете поместить jar-файлы, содержащие классы. нужно поставить пружину.кувшин или пружинная паутина.банку в этой папке. я предполагаю, что папка называется lib, и она, вероятно, будет находиться в папке под названием WEB - INF, но я не уверен, потому что я не знаю "был".

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


Project> properties> deployment assembly> add > referenced project class path entries> maven dependencies 

развернуть снова. Это работает для меня


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

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

  2. Если вы видите какие-либо ошибки компиляции в коде Java, то у вас нет правильно настроенного пути сборки. Храните все банки, которые вы помещаете в WEB-INF/lib в пути сборки, как " Referenced Библиотеки."


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

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

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

проект - > Maven clean и build - > обновление папки lib и убедитесь, что все банки есть (или конкретная банка, которая выбрасывает исключение)