estoy usando spring 3.1.0.RELEASE , y mi contenedor de servlet es tomcat 7 y mi IDE es eclipse indigo y el jar spring-webmvc-3.1.0.RELEASE.jar que contiene el DispatcherServlet existe en la carpeta lib, y aún cuando ejecutando la aplicación, obtengo la excepción:
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:126)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1043)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279)
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)
Indique por qué recibo esta excepción y cómo solucionarlo.
EDITAR: los siguientes son mis archivos de configuración:
1- Frijoles de primavera:
<?xml version="1.0" encoding="UTF-8"?>
<beansProjectDescription>
<version>1</version>
<pluginVersion><![CDATA[2.9.0.201203011806-RELEASE]]></pluginVersion>
<configSuffixes>
<configSuffix><![CDATA[xml]]></configSuffix>
</configSuffixes>
<enableImports><![CDATA[false]]></enableImports>
<configs>
<config>src/main/webapp/WEB-INF/checkout-servlet.xml</config>
</configs>
<configSets>
</configSets>
</beansProjectDescription>
2- web.xml:
<web-app>
<display-name>Checkout</display-name>
<servlet>
<servlet-name>checkout</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>checkout</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
</web-app>
3- pago-servlet.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<context:component-scan base-package="com.myapp"/>
<bean id="myService" class="com.myapp.MyService"/>
</beans>
también cuando intento acceder a cualquier página de la aplicación, obtengo la excepción:
HTTP Status 404 - Servlet checkout is not available
type Status report
message Servlet checkout is not available
description The requested resource (Servlet checkout is not available) is not available.
Apache Tomcat/7.0.22
spring
maven
spring-mvc
maven-2
Mahmoud Saleh
fuente
fuente
Respuestas:
Debe agregar la "Dependencia de Maven" en el ensamblado de implementación
Reconstruir y desplegar de nuevo
Nota: Esto también se aplica a proyectos no maven .
fuente
Dos posibles respuestas:
1- No incluyó spring-beans y spring-context jars en su lib. Si está usando maven (lo que ayudará mucho) esas dos líneas serán suficientes
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.1.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.1.0.RELEASE</version> </dependency>
2- Los archivos jar necesarios están en su classpath pero no están implementados en tomcat.
fuente
spring-webmvc
a mipom.xml
resolverá el problema. Gracias.Hola chicos, tuve el mismo problema con Idea Intellij y Spring 4. Solucioné el problema y quería compartir la respuesta con ustedes.
Yo uso tomcat 7 / idea intellij 13 / spring 4
dependencias pom.xml
<properties> <spring.version>4.0.5.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> enter code here <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.2</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> </dependencies>
En idea Intellij, debe ir a Archivo -> Configuración del proyecto -> Artefactos. Entonces
limpiar -> reconstruir el proyecto -> construir el artefacto y todo estará bien ...
fuente
Esto me resuelve el problema. Es fácil y se explica de forma bastante sencilla.
Paso 1
Paso 2
Paso 3
Paso 4
Paso 5
classnotfoundexception
fuente
Encontré que en el ensamblaje de implementación , estaba la entrada:
Lo eliminé y agregué la
maven dependencies
entrada, y ahora funciona bien.fuente
Si todos estos consejos no funcionan, debería volver a crear su servidor (Tomcat o similar). Eso resolvió mi problema.
fuente
Incluya la siguiente dependencia en su pom.xml
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>{spring-version}</version> </dependency>
fuente
Estaba enfrentando el mismo problema. Cuando vi en la carpeta .m2 del repositorio de maven (.... m2 \ repository \ org \ springframework \ spring-webmvc) en mi local, encontré dos carpetas 3.2.0.RELEASE. Así que eliminé uno. Luego fui al proyecto, haga clic derecho-> propiedades-> essembly de implementación-> agregar dependencias maven. clean build y luego reinicie el servidor. Entonces se cargó el DispatcherServlet.
fuente
En mi caso, tengo este problema después de usar la utilidad del proyecto de actualización de maven. Probé todas las soluciones alternativas que sugirió, pero nada pareció funcionar. Al final, la solución fue simplemente eliminar el proyecto del servidor para asegurarse de que estaba limpio y agregarlo nuevamente. Entonces funciona, espero que esta solución pueda ayudar a alguno de ustedes.
fuente
Puede utilizar el servidor GlassFish y se resolverá el error. Intenté con tomcat7 y tomcat8 pero este error venía continuamente, pero se resolvió con GlassFish. Creo que es un problema con el servidor.
Estos son los resultados con tomcat7:
Estos son los resultados con GlassFish:
fuente
haga clic derecho en su proyecto y elija propiedades. haga clic en Deployement Assembly. haga clic en agregar haga clic en "Entradas de ruta de compilación Java" seleccione Dependencias de Maven "haga clic en Finalizar.
fuente
Puede ser útil para alguien, así que lo publicaré aquí. Me faltaba esta dependencia de mi
pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>
fuente
fuente
Lo resolví siguiendo estos pasos:
Esto corrige la configuración de "Ensamblado de implementación" del proyecto.
fuente
Mueva los archivos jar de su classpath a web-inf / lib y ejecute un nuevo servidor Tomcat.
fuente
Encontré una solución simple, simplemente agregue sus frascos dentro de WEB-INF -> carpeta lib ..
fuente
Tuve este mismo problema en WebSphere, pero no pude encontrar una solución a pesar de que verifiqué que las dependencias de Spring estaban allí y se ejecutó bien en Tomcat. Terminé desinstalando la aplicación y todavía recibía el error, así que creo que WebSphere estaba colgando de alguna instancia corrupta.
Para solucionar el problema, tuve que reinstalar la aplicación, detenerla, desinstalarla y luego reinstalarla.
fuente
Para mí fue un error en el
pom.xml
- yo establecí<scope>provided<scope>
mis dependencias, y esto hizo que no se copiaran durante lamvn package
etapa.Mis síntomas fueron el mensaje de error que publicó el OP y que los frascos no se incluyeron en la ruta WEB-INF / lib dentro del .war después de ejecutar el paquete. Cuando quité el alcance, los frascos aparecieron en la salida y ahora todo se carga bien.
fuente