2011-01-19 15 views
27

Hace algún tiempo, leí un artículo sobre lo que se espera que sea Servlet API 3.0. Recuerdo que leí que puede guardar algunos archivos .jsp en un /WEB-INF/lib/somelib.jar/META-INF/web/ .jsp y estos recursos estarán expuestos a la raíz de contexto de la aplicación web.Exponer recursos de archivos jar en aplicaciones web (Tomcat7)

Acabo de instalar Tomcat7 para intentarlo, pero no encontré documentación que indique que puedo poner algunos recursos web en archivos jar.

  • ¿Existe esta característica en servlet api 3.0?
  • ¿Existe esta característica en tomcat 7.0?
  • ¿Hay alguna otra forma de tener archivos jsp en archivos /lib/*.jar?

Respuesta

39

Hay una característica en servlet 3.0 que le permite empaquetar los recursos (imágenes, JSP, etc.) en un archivo JAR. Lo que debes hacer es crear un archivo jar en tu archivo jar, crea META-INF/resources y volca todo lo que quieras allí, incluidos los directorios para estructurar tus recursos. Lo que sucede es que META-INF/resources se asignará al docroot de su aplicación web.

Cuando hay un choque de recursos entre su aplicación y el archivo JAR, se devolverá su recurso de aplicaciones. Ver this

Tomcat 7 es compatible con Servlet 3 por lo que debe admitir esta función

+2

Gracias. Probé esto con Tomcat 7.0.6 y funciona. Importante que esto solo funciona con jar en WEB-INF/lib, no en WEB-INF/classes –

+0

Sí, solo con archivos JAR en lib. Esto es totalmente para soportar marcos donde el framework puede servir sus propios recursos –

+0

Estoy usando un archivo spring-js-resources.jar, y todos los archivos están ubicados bajo META-INF/web-resources, no por META-INF/resources , también comienzo el tomcat 7 incrustable usando el plugin maven y no funciona. ¿Hay alguna solución? – Alexandr

Cuestiones relacionadas