Saltar al contenido

¿Cómo depurar el mapeo de URL de Spring MVC?

Te doy la bienvenida a nuestra web, en este lugar vas a encontrar la resolución de lo que buscas.

Solución:

Para problemas como este, creo que el mejor “punto de entrada” para comenzar a depurar es el método getHandler(HttpServletRequest request) de El DispatcherServlet.

Dentro de este método cada configurado HandlerMapping se inspecciona si es responsable de manejar su solicitud específica. Si su solicitud llega hasta aquí, puede estar seguro de que se trata de un problema de configuración dentro del contexto de primavera.

Cuidado con los manipuladores del tipo RequestMappingHandlerMapping (o DefaultAnnotationHandlerMappingsi está utilizando una versión anterior de Spring), estos son normalmente los HandlerMapping utilizado por la configuración del controlador basada en anotaciones.

En el otro caso, asegúrese de que no haya nada “enfrente” del DispatcherServlet filtrar sus solicitudes (como en su caso)

La publicación de Daniele Torino me llevó por el camino correcto al mencionar TRACE además de DEBUG. Además del marco de registro, creo que importa qué versión de Spring está utilizando. En Spring 3, del que nos mudamos recientemente, creo que DEBUG fue suficiente. Sin embargo, en Spring 5, las asignaciones reales no se enumeran. Recuerdo que (en Spring 3.x) solía ver las asignaciones simplemente configurando


pero ahora (en Spring 5.x) solo enumera la cantidad de asignaciones.

DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - 14 mappings in 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping'

En Spring 5, las asignaciones reales no se registraron hasta que agregué

 

al archivo log.properties. (Recomiendo usar TRACE con moderación). Con eso en su lugar, la salida del registro incluye varias líneas como:

TRACE o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped 1 handler method(s) for class com.yourcompany.YourClass: public org.springframework.web.servlet.ModelAndView com.yourcompany.YourClass.someMethod(,javax.servlet.http.HttpServletRequest)=[/your-request-mapping-url],methods=[GET]

En Resorte 4 y resorte BOOT – lo que me ayudó fue habilitar el inicio de sesión DEBUG en application.properties. Para hacer eso, simplemente agregue:

logging.level.org.springframework.web=DEBUG

actualizar

Para el modo de depuración en el último arranque de Spring, agregue:

debug=true

en su archivo application.properties

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *