que mvc example español dispatcherservlet spring servlets struts

example - spring mvc pdf



java.lang.IllegalStateException: No se encontró WebApplicationContext: ¿no se ha registrado ContextLoaderListener? (4)

Este es el archivo web.xml en WEB-INF.

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <filter> <filter-name>LoginFilter</filter-name> <filter-class>glpi.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/index.jsp</url-pattern> </filter-mapping> <servlet> <servlet-name>context</servlet-name> <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>/login.jsp</welcome-file> </welcome-file-list> </web-app>


Agregue el siguiente código en el archivo web.xml, bcs busca contextos para cargar, por lo que debemos declararlo inicialmente.

<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/HelloWeb-servlet.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>


Creo que le falta el escucha del cargador de contexto (para elegir su (s) archivo (s) de contexto de Spring).

Añade esto a tu web.xml

<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>

También puede consultar la sección de configuración web inicial en http://static.springsource.org/spring/docs/2.0.x/reference/beans.html


Recientemente me topé con el mismo problema, y ​​estaba seguro de que no podía ser causado por una configuración incorrecta porque copié toda la instalación de Tomcat en funcionamiento desde otra máquina. Sin embargo, seguí recibiendo la misma excepción:

java.lang.IllegalStateException: No WebApplicationContext found: not in a DispatcherServlet request and no ContextLoaderListener registered?

Como eventualmente me di cuenta, fue una versión JVM incorrecta la que rompió la aplicación: esta usaba Java 7 , mientras que la instancia de trabajo (y la aplicación web) estaba en Java 8 .

Espero que ayude a alguien que lucha con este mensaje de error contraintuitivo.


Tiene tanto ContextLoaderServlet como DispatcherServlet configurados para cargar en el inicio = 1. Eso significa que cualquiera de ellos podría comenzar primero, y necesita que ContextLoaderServlet inicie primero, ya que eso es lo que crea la raíz WebApplicationContext que su error indica que falta. Así que deje la carga en el inicio de ContextLoaderServlet en 1, y cambie el DispatcherServlet''s a 2 o superior.

En realidad, es preferible usar ContextLoaderListener lugar del Servlet a menos que esté en un contenedor realmente antiguo donde el Oyente no funciona correctamente.