Tengo una aplicación web implementada como un archivo WAR en Tomcat 7. La aplicación está construida como un proyecto de varios módulos:¿Puedo servir JSP desde dentro de un JAR en lib, o hay una solución?
- núcleo - empaquetado como JAR, contiene la mayor parte del código de fondo
- núcleo- api - empaquetado como JAR, contiene interfaces hacia el núcleo
- webapp - empaquetado como WAR, contiene código frontend y depende de núcleo
- cliente-extensiones - módulo opcional, envasados como JAR
Normalmente, podemos poner nuestros archivos JSP en el proyecto de aplicación Web, y hacer referencia a ellos en relación con el contexto:
/WEB-INF/jsp/someMagicalPage.jsp
La cuestión es qué hacer con los archivos JSP que son específicos para el proyecto del cliente-extensiones, que debe no siempre se incluirá en la GUERRA. Desafortunadamente, no puedo referirme a las JSP dentro de los archivos JAR, parece. Al intentar classpath:jsp/customerMagicalPage.jsp
, se produce un archivo que no se encuentra en JspServlet, ya que usa ServletContext.getResource()
.
Tradicionalmente, hemos "resuelto" esto teniendo maven desempaquetar el archivo JAR de extensiones de cliente, ubicar los JSP y colocarlos en el WAR al construirlo. Pero una situación ideal es cuando solo lanzas un JAR en el WAR explosionado en Tomcat y se descubre la extensión, que funciona para todo menos para los JSP.
¿Hay alguna forma de solucionar esto? ¿Una forma estándar, una forma específica de Tomcat, un truco o una solución alternativa? Por ejemplo, he estado pensando en desempaquetar los JSP al iniciar la aplicación ...
guerra debe contener jsp, js y servlets. –
relacionado: http://forum.springsource.org/showthread.php?t=58441 – Bozho