2011-01-19 13 views
27

Qualche tempo fa ho letto un articolo che dovrebbe essere in Servlet API 3.0. Ricordo che ho letto che puoi salvare alcuni file .jsp in /WEB-INF/lib/somelib.jar/META-INF/web/ .jsp e queste risorse saranno esposte alla root di contesto dell'applicazione web.Esposizione di risorse da file jar in applicazioni Web (Tomcat7)

Ho appena installato Tomcat7 per fare un tentativo, ma non ho trovato documentazione che possa mettere alcune risorse web in file jar.

  • Questa funzione è presente in servlet api 3.0?
  • Questa funzione esiste in tomcat 7.0?
  • C'è un altro modo per avere file jsp nei file /lib/*.jar?

risposta

39

C'è una funzione nel servlet 3.0 che consente di impacchettare le risorse (immagini, jsp, ecc.) In un file JAR. Quello che fai è nel tuo file jar, tu crei META-INF/resources e fai il dump di tutto ciò che vuoi, comprese le directory per strutturare le tue risorse. Quello che succede è che META-INF/resources verrà mappato allo docroot della tua applicazione web.

Quando c'è uno scontro di risorse tra l'app e il file JAR, la risorsa app verrà restituita. Vedere this

Tomcat 7 supporta Servlet 3 e quindi dovrebbe supportare questa funzione

+2

Grazie. Ho provato questo con Tomcat 7.0.6 e funziona. Importante che questo funzioni solo con i jar in WEB-INF/lib, non in WEB-INF/classi –

+0

Sì solo con i file JAR in lib. Questo è actaully per supportare framework in cui il framework può servire le proprie risorse –

+0

Sto usando un file spring-js-resources.jar, e tutti i file si trovano sotto META-INF/risorse-web, non da META-INF/risorse , inoltre avvio tomeddat 7 embeddable usando il plugin maven e non funziona. c'è qualche soluzione? – Alexandr

Problemi correlati