world mvc hello example java spring jsp tomcat spring-boot

java - mvc - Tomcat/Spring boot recarga los archivos META-INF/resources/jsp(actualizaciones en vivo)



spring boot thymeleaf (3)

Esto es muy probable que sea lo mismo que: https://stackoverflow.com/a/8656527/696632

Todos los recursos en classpath están sujetos a un caché. Debes evaluar la respuesta.

Tengo un problema al usar jsp en las instancias de arranque / tomcat de spring. Básicamente, tengo todos los archivos jsp dentro del módulo A (A / src / main / resources / META-INF / resources / jsp) y este módulo está incluido en el módulo B (módulo principal, paquete war) como una dependencia de jarra. El problema es que cuando la aplicación se ejecuta en modo de depuración (ya sea en Eclipse o en IntelliJ Idea), ninguno de los archivos jsp ubicados en el módulo A se está recargando automáticamente (los cambios en el archivo no se ven en la página web renderizada), solo se reinicia Tomcat en realidad vuelve a cargar los archivos y muestra los cambios. Los archivos jsp anulados en el Módulo B se están recargando, solo los archivos jsp en el Módulo A están teniendo problemas (probablemente debido a la carpeta META-INF / resources).

Estructura del módulo A (dependencia, empaquetada como jar): src / main / resources / META-INF / resources / jsp / *. Jsp

La estructura del Módulo B (módulo principal, empaquetado como war, jsp aquí anula los del Módulo A): src / main / webapp / jsp / *. Jsp

He buscado una solución para esto, pero lo más cercano que encontré fue esta (utilizando JRebel): https://zeroturnaround.com/forums/topic/jsps-in-servlet-3-0-jars-are-not-reloading/

Además, este es un ejemplo de cómo he configurado jsp: https://github.com/ghillert/spring-boot-jsp-demo


No sé si se ajusta a sus limitaciones, pero existe una solución como esta: https://spring.io/blog/2015/06/17/devtools-in-spring-boot-1-3

Otra opción: https://github.com/spring-projects/spring-loaded

Utilizo JSF y Facelets y la recarga en caliente siempre es un poco problemática para las tecnologías web que tienen representación dinámica. Así que mi sugerencia, aparte de spring-boot-devtools, será separar el proceso de desarrollo de contenido estático del proceso relacionado con la representación. Si solo necesita recargar en caliente para la edición css, html, js, la mayoría de las tecnologías disponibles le ayudarán, pero la edición de componentes relacionados le pedirá que reconstruya y vuelva a implementar su aplicación cada cierto tiempo. La frecuencia con la que le preguntarán eso depende de la calidad de la herramienta que vaya a utilizar.


Una opción podría ser usar el complemento de Gradle Cargo o el complemento de Maven Cargo para volver a implementar sus archivos en Tomcat (todos los archivos se pueden volver a implementar, incluidos los archivos de recursos).

La recarga de archivos no es automática. Debe ejecutar manualmente la tarea / objetivo relevante, CargoRedeployLocal o cargo: volver a desplegar para las construcciones de Gradle y Maven respectivamente.

Sin embargo, si reiniciar todo lleva mucho tiempo, la redistribución con el complemento de Cargo podría ayudar a acelerar el proceso.