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

290

Los incluí en la ruta de compilación :

  • todas las bibliotecas de primavera
  • Biblioteca Apache Tomcat 7.0

El proyecto aún falla durante el inicio:

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)

En org.sprintframework.web-3.1.0.M1.jar, puedo ver el org.springframework.web.context.ContextLoaderListener.

Alguien en Google dice que spring.jardebería incluirse, pero no veo ninguno spring.jaren la distribución 3.x.

Eclipse 3.6.2
Tomcat 7

Editar: Alguien en el Foro de Spring (sin conexión) dijo que "Actualizar dependencias automáticamente" debería verificarse en Propiedades del proyecto, pero no veo nada parecido en las propiedades del proyecto.

esmeralda
fuente
1
cierre el proyecto, cree un nuevo lugar de trabajo, asegúrese de las dependencias en POM. Tuve que enfrentar este problema, pero se solucionó después de la corrección de las dependencias
MLS
¿Puede publicar el contenido de su carpeta .war / lib por favor? O al menos todo lo que es. * Spring. * \. Jar.
Simeon
Incluso si agregué la siguiente dependencia a pom, todavía estaba teniendo el mismo error. <dependency> <groupId> org.springframework </groupId> <artifactId> spring-web </artifactId> <version> {Spring-Version} </version> </dependency> Lo que hice fue como otros sugirieron que agregué el maven dependencias al ensamblaje de implementación. Y cuando actualizo el pom con otras dependencias y hago un proyecto de actualización de maven, el error sigue apareciendo. La inspección del ensamblaje de implementación me muestra que las dependencias de Maven están siendo expulsadas. Tuve que rehacer el proceso anterior nuevamente.
Tadele Ayelegn
1
Esta solución funcionó para la mayoría. Agregar dependencias al ensamblaje de implementación.
lokesh

Respuestas:

777

Tuve un problema similar al ejecutar una aplicación web de primavera en un tomcat administrado por Eclipse. Resolví este problema agregando dependencias de Maven en el ensamblaje de implementación web del proyecto.

  1. Abra las propiedades del proyecto (por ejemplo, haga clic derecho en el nombre del proyecto en el explorador del proyecto y seleccione "Propiedades").
  2. Seleccione "Asamblea de implementación".
  3. Haga clic en el botón "Agregar ..." en el margen derecho.
  4. Seleccione "Entradas de ruta de compilación Java" en el menú Tipo de directiva y haga clic en "Siguiente".
  5. Seleccione "Dependencias de Maven" en el menú Entradas de ruta de compilación de Java y haga clic en "Finalizar".

Debería ver "Dependencias de Maven" agregadas a la definición del ensamblaje de implementación web.

Marcelo
fuente
66
Esa es la forma en que debe hacerlo, la forma correcta en eclipse.
Pap
18
Estaba teniendo el mismo problema. Pero no puedo ver 'Ensamblaje de implementación' en 'Propiedades' (en un módulo de mi proyecto maven multimódulo).
gtiwari333
99
Esto es correcto, aunque muy molesto. Tal vez algo del plugin m2e debería encargarse, en mi opinión.
RickB
10
Veo las dependencias de Maven agregadas a la definición del ensamblaje de implementación web, pero sigo recibiendo el error.
dabadaba
10
¿Qué pasa si Java Build Path Entries no contiene nada? Estoy en ese caso
vdolez
117

Lo mismo me sucede de vez en cuando cuando uso Eclipse WDT. Es especialmente frustrante cuando esto le sucede a un proyecto no modificado y que funcionaba anteriormente. Esto es lo que hago para solucionarlo en este último escenario:

  1. Detener Tomcat (si se está ejecutando)
  2. Abra la vista "Servidores": Ventana> Mostrar vista> Otro> Servidor> Servidores
  3. Haga clic derecho en Servidor Tomcat> Limpiar directorio de trabajo de Tomcat.
  4. Haga clic derecho en el servidor Tomcat> Limpiar
  5. Reiniciar el servidor

Esto generalmente soluciona el problema que mencionas.

Chepech
fuente
3
Hay un informe de error para esa situación específica ( bugs.eclipse.org/bugs/show_bug.cgi?id=365748 ). Los desarrolladores de Eclipse necesitan más información al respecto y formas de reproducir el problema.
Chucky
1
bueno, esta es la solución flexible para todos, esta respuesta debe marcarse como respuesta. Buen trabajo Chepech
Preguntas Java
3
Esta es realmente una solución más simple para este problema. Gracias chepech!
Badal
2
Esto no me ayudó con eclipse 4.4. Tuve que usar el método de Susie eliminar / agregar implementación a tomcat. Estaba monitoreando la carpeta de implementación de tomcat cuando realizaba las limpiezas. No sé por qué la limpieza no limpia la carpeta de implementación.
Beato Geek
1
El ensamblaje de implementación es la forma correcta de hacerlo, pero si no funciona debido a algún daño o no, esta limpieza realmente lo corrige.
Calabacin
26

Puede intentar "Limpiar directorio de trabajo de Tomcat" o simplemente "Limpiar ..". Esto supone descartar todo el estado publicado y volver a publicarlo desde cero.

Mashrur
fuente
Gracias por esta solución! La respuesta aceptada arriba no resolvió este problema para mí, pero la suya sí.
GreenTurtle
25

Utilicé IntelliJ IDEA, la compilación es exitosa, pero al iniciar Tomcat, dice:

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

Al principio, pensé que faltaba el JAR, pero estaba en su lugar.

Solución: File > Project Structure > Artifactsen el Output Layoutdoble clic en el panel derecho, Available Elementsla biblioteca denominada como Maven:...se moverá al WEB-INF/libpanel izquierdo.

Acepte y reinicie Tomcat.

乌鸦 不会 飞
fuente
Esta respuesta no es exactamente relevante para la pregunta ya que OP estaba usando Eclipse
Adam Michalik
10
Pero me ayudó.
udaybhaskar
8

Este es seguramente un problema relacionado con Eclipse. Lo que funcionó para mí es crear un nuevo servidor en la pestaña del servidor eclipse. Luego ejecute su aplicación en este nuevo servidor, debería funcionar.

Aditya Gaikwad
fuente
7

Si todo lo mencionado anteriormente no funciona, intente lo siguiente. Funcionó para mi.

Elimine su proyecto del servidor> Reiniciar servidor> Agregue su proyecto al servidor> Reiniciar servidor.

Instrucción detallada:

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

Estaba enfrentando el mismo problema para un proyecto de eclipse configurado para Tomcat 7 runtime

Haga clic derecho en el proyecto y vaya a las propiedades del proyecto. Haga clic en Asamblea de implementación. Pude notar que faltaban los frascos de la biblioteca de primavera que creé durante el tiempo de compilación con una biblioteca de usuario. Simplemente agregue los frascos y no debería ver errores en la consola durante el inicio de Tomcat

abhi
fuente
5

Si está utilizando Maven, quizás el proyecto aún no esté construido. Primero haz un mvn clean packageintento de redistribución nuevamente.

gouki
fuente
Eclipse 3.6.2 + Tomcat 7
emeraldhieu
4

Solución para Eclipse Luna:

  1. Haga clic derecho en el proyecto web maven
  2. Haga clic en el menú 'Propiedades'
  3. Seleccione 'Conjunto de implementación' en el lado izquierdo de la ventana emergente
  4. Haga clic en el botón 'Agregar ...' en el lado derecho de la ventana emergente
  5. Ahora aparece una ventana emergente más (Nuevas directivas de ensamblaje)
  6. Haga clic en 'Entradas de ruta de compilación Java'
  7. Haga clic en el botón 'Siguiente'
  8. Haga clic en el botón 'Finalizar', ahora cierre atómicamente la ventana emergente Nuevas directivas de ensamblado
  9. Ahora haga clic en el botón 'Aplicar' y el botón Aceptar
  10. Ejecute su aplicación web
Radhakrishnan S
fuente
4

Si está utilizando IntelliJ IDEA e implementa la aplicación en el servidor Tomcat, dice: En el menú Archivo -> seleccione Estructura del proyecto -> haga clic en artefacto -> seleccione sus jarras y haga clic derecho -> poner en WEB \ lib -> reiniciar servidoringrese la descripción de la imagen aquí

harun ugur
fuente
3

En realidad, este es un problema de Tomcat. Simplemente vaya a la carpeta 'lib' de su proyecto y copie todos sus frascos relacionados con 'Spring' en esto. Actualice su proyecto y estará listo para comenzar. Este problema persiste en algún momento porque Tomcat no puede localizar las clases principales de Spring.

Rahul Sharma
fuente
2

También tuve el mismo error. No había agregado la dependencia a continuación en mi archivo POM.

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

Pero mi proyecto solía ejecutarse incluso antes de agregar esta dependencia. Pero en un momento se detuvo y comenzó a dar el mismo error anterior.

Si alguien no pudo resolver este error, también puede resolverlo mediante este enlace


fuente
1
<dependency> <groupId> org.springframework </groupId> <artifactId> spring-web </artifactId> <version> 4.1.6.RELEASE </version> </dependency> Agregar esto me ayudó a resolver este error.
Ashutosh S
2

Tuve el mismo problema. Lo resolví agregando dependencia spring-web en mi pom. Asegúrese de que utiliza tarro de la primavera en la web que tiene ContextLoaderListener clase extiende ContextLoader implementos ServletContextListener y residir en el org.springframework.web.context paquete. Utilicé 3.0.4.

Asif Khan
fuente
1

Probé el

  • proyecto limpio mvn
  • limpiar
  • limpiar el directorio de trabajo de tomcat automáticamente
  • actualizar dependencias

Lo único que funcionó al menos temporalmente fue agregar las dependencias de Maven a la definición del ensamblaje de implementación web

¡Pero esto no funciona para siempre! Después de un par de días deja de funcionar. Mi solución fue eliminar las dependencias de Maven, aplicar el cambio y agregar nuevamente las dependencias de Maven.

Estoy usando - eclipse Juno - incrustado maven - tomcat 7

Volker Demel
fuente
1

Para usuarios de gradle, funciona con los siguientes pasos

1) Detener y eliminar el servidor tomcat de la pestaña Servidores en eclipse

pestaña eclipse tomcat

2) limpie el directorio web y el directorio de trabajo de la instalación de tomcat , (Referencia, procedimientos: borre la memoria caché de Tomcat y solucione los problemas obsoletos de JSP )

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

3) limpiar y eclipsar proyecto usando la herramienta de construcción

$ ./gradlew clean eclipse// dispara el comando respectivo para los mvnusuarios,$ mvn clean package

4) configure un nuevo servidor Tomcat en eclipse y vuelva a ejecutar el proyecto.

prayagupd
fuente
1

Yo también enfrenté el mismo problema ... y lo resolví siguiendo los pasos a continuación:

RC (clic derecho en proyecto web) -> propiedades -> Ensamblaje de implementación -> Agregar -> Entradas de ruta de compilación Java -> Siguiente -> seleccionar archivos jar que faltan -> siguiente -> finalizar

La aplicación se está ejecutando correctamente ...

Neel
fuente
Tengo el error del OP, pero no faltaron archivos jar en mi ensamblado de implementación.
Blamkin86
1

Tengo el mismo problema y lo resolví siguiendo los pasos mencionados anteriormente, pero no cuando vuelvo a tener este problema e intento lo siguiente,

RC (clic derecho en proyecto web) -> propiedades -> Ensamblaje de implementación -> Agregar -> Entradas de ruta de compilación Java -> Siguiente ->

después de hacer clic en Siguiente, solo hay una ventana en blanco con las opciones Siguiente y Finalizar desactivadas. ¿Qué puedo hacer ahora?

Geo Thomas
fuente
1

Me enfrenté al mismo problema.

Simplemente eliminé el servidor de la configuración y lo volví a agregar después de reiniciar eclipse agregándolo al entorno de ejecución del servidor.

Ramashis
fuente
1

Para mí, la solución fue hacer clic derecho en mi módulo de aplicación web> Maven> Actualizar proyecto

TheBakker
fuente
1

Una solución rápida que prefiero y que más me conviene para esta situación es simplemente eliminar la carpeta .metadata de su espacio de trabajo e importar sus proyectos nuevamente. Si prueba todas las demás opciones, no garantizará el éxito. A veces, las soluciones anteriores funcionan en algún momento y pasarás tus preciosas horas para arreglar esta configuración.

Un día decidí limpiar mi estación de trabajo. Organicé los proyectos en sus carpetas adecuadas de acuerdo a diferentes clientes. Como resultado, todo quedó en mal estado. Después de pasar todo un día, no terminó en un espacio de trabajo fijo. Al día siguiente, simplemente eliminé la carpeta .metadata del espacio de trabajo e importé todos los proyectos nuevamente. Bingo todo listo.

biswarup bannerjee
fuente
1

Ponga <packaging>war</packaging>en su pom.xml si está utilizando Maven. En ese caso, tal vez sea con envases de jarra

Debe tener bibliotecas Maven en la Asamblea de implementación

Robson Martins
fuente
0

El uso de la "Actualización de la configuración del proyecto" arruinó la ruta de compilación del proyecto.

Solución: abra el menú "configurar ruta de compilación ..." (haga clic con el botón derecho en el proyecto) y arregle las opciones Incluidas / Excluidas para cada carpeta de origen. Eso funcionó para mí.

kiwifrog
fuente
0

En muchos casos, es un problema de faceta de Java, la versión jdk o jre o jsp es diferente a la cara del proyecto maven.

Ali.Mojtehedy
fuente
0

La solución real para mí fue instalar la "integración m2e-wtp - Maven para WTP". La solución de Marcelo no es necesaria en ese caso.

cristiano
fuente
0

si nada de lo anterior funciona, elimine el .class de la clase de escucha, es decir

<listener>
<listener-class>

org.springframework.web.context.ContextLoaderListener.class

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

Esto funciona para mi ...

Haga clic derecho en el proyecto web maven Haga clic en el menú 'Propiedades' Seleccione 'Ensamblaje de implementación' en el lado izquierdo de la ventana emergente Haga clic en el botón 'Agregar ...' en el lado derecho de la ventana emergente Ahora aparezca una ventana emergente más (Nuevas directivas de ensamblaje) Haga clic en 'Entradas de ruta de compilación de Java' Haga clic en el botón 'Siguiente' Haga clic en el botón 'Finalizar', ahora cierre atómicamente la ventana emergente Nuevas directivas de ensamblaje Ahora haga clic en el botón 'Aplicar' y el botón Aceptar Ejecute su aplicación web

usuario6425667
fuente
0

Esto me sucedió después de hacer cambios en mi mapeo de Hibernate en un proyecto IntelliJ usando Gradle. Simplemente reconstruir el proyecto funcionó para mí.

Paciencia Mpofu
fuente
0

Me encontré con esto un par de veces por trimestre. Esta vez tuve un resumen de cambios mínimos en mi git diff y rastreé el problema a un classpath restablecido (falta mi dependencia de WEB-INF / lib) en eclipse. Esto parece ocurrir cada vez que entro o retiro proyectos de padres / hermanos maven.

Hay menciones de agregar sus tarros de primavera a la biblioteca de tomcat web container: esto está bien y es la forma en que se ejecutan la mayoría de los servidores EE. Sin embargo, ten en cuenta que al colocar el resorte más alto en el árbol del cargador de clases en Tomcat, estarás corriendo más alto que el nivel del cargador de clases de tu contexto de guerra. Le recomiendo que deje las bibliotecas en un cargador de clases de nivel inferior por guerra.

Vemos lo siguiente después de un .classpath truncado después de un cambio de proyecto estructural en eclipse.

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

Mi classpath se restableció y se eliminó la dependencia 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>

volver

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

y estarás bien

gracias / michael

Michael O'Brien
fuente
0

Obtuve esto cuando tenía la lib en mi ruta de compilación, pero no en mi ensamblaje de implementación. También cuando me faltaba un context.xml.

Noumenon
fuente