2012-06-26 14 views
5

Mam plik jar w moim katalogu WEB-INF/lib. Wewnątrz tego słoika znajduje się katalog META-INF/resources z jednym plikiem (image.jpg). Jak rozumiem Servlet 3.0 API, gdy wdrożyć to jako część mojej aplikacji internetowej pod Tomcat 7, powinny być w stanie przejść dozasoby w META-INF/zasoby nie znalezione i zwrócone 404

http://host/context/image.jpg 

i zobaczyć obraz ładowany od wewnątrz słoika. ale zamiast tego pojawia się błąd 404. To tak, jakby serwlet_api nie ładował zasobów z moich słoików, mimo że dokumentacja mówi, że powinna.

Co robię źle? Czy jest pole, które muszę umieścić w moim pliku web.xml, aby powiedzieć tomcat, aby załadował te zasoby i udostępnił je przeglądarce internetowej?

+0

Aby usunąć zamieszanie, używam wtyczek Struts2 z wtyczkami Konwencja/Odpoczynek, ale zgodnie z dokumentacją serwletu 3.0, to nie powinno mieć znaczenia, ale nadal nie działa w ogóle! Potrzebuję pomocy. –

Odpowiedz

5

Sposób, w jaki słoik jest zbudowany, jest poprawny. Tomcat 7 jest dostarczany ze słojem Servlet 3.0, ale nie będzie obsługiwał zasobów poza słojem, chyba że web.xml wyraźnie stwierdza, że ​​jest to wersja 3.0. Tomcat nie zakłada, że ​​chcesz funkcjonalności Servlet 3.0.

W swojej web.xml, Web-app tag trzeba zacząć tak:

<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"> 

Note odniesień do wersji 3.0

Jak najszybciej określić web-app jest w wersji 3.0, uzyskasz dostęp do funkcji Servlet 3.0.

Powiązane problemy