2012-06-26 6 views
5

Ho un file jar nella mia directory WEB-INF/lib. Dentro quel vaso c'è una directory META-INF/risorse con un file (image.jpg). Mi pare di capire l'API servlet 3.0, quando schiero questo come parte del mio web app sotto Tomcat 7, dovrei essere in grado di andare arisorse in META-INF/risorse non trovate e ritorno 404

http://host/context/image.jpg 

e vedere l'immagine caricata all'interno del vaso. ma invece, ottengo un errore 404. È come se il servlet_api non stia caricando risorse dai miei barattoli anche se la documentazione dice che dovrebbe.

Cosa sto sbagliando? C'è un campo che devo inserire nel mio file web.xml per dire a tomcat di caricare queste risorse e renderle disponibili al browser web?

+0

Solo per chiarire qualsiasi confusione, sto usando Struts2 con i plugin Convention/Rest, ma secondo la documentazione di servlet 3.0, non dovrebbe importare, eppure non funziona affatto! Ho bisogno di aiuto. –

risposta

5

Il modo in cui è costruito il vaso è corretto. Tomcat 7 viene fornito con il jar Servlet 3.0, ma non servirà le risorse dal jar a meno che il web.xml non specifichi specificamente che è la versione 3.0. Tomcat non supporrà che tu voglia la funzionalità di Servlet 3.0.

Nel vostro web.xml, il tag web-app ha bisogno di iniziare in questo modo:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 

nota i riferimenti alla versione 3.0

Non appena si specifica il web-app è versione 3.0, avrai accesso alla funzionalità Servlet 3.0.