2012-06-26 5 views
5

Ich habe eine JAR-Datei in meinem Verzeichnis WEB-INF/lib. In diesem Jar befindet sich ein META-INF/Ressourcenverzeichnis mit einer Datei (image.jpg). Als ich den Servlet 3.0 API verstehen, wenn ich diese App als Teil meiner Web bereitstellen unter Tomcat 7, soll ich in der Lage sein, das Bild aus dem Glas geladen zu gehenRessourcen in META-INF/Ressourcen nicht gefunden und zurück 404

http://host/context/image.jpg 

und sehen. aber stattdessen erhalte ich einen 404 Fehler. Es ist so, als würde der Servlet_api keine Ressourcen aus meinen Gläsern laden, obwohl die Dokumentation es sagt.

Was mache ich falsch? Gibt es ein Feld, das ich in meine web.xml-Datei schreiben muss, damit tomcat diese Ressourcen lädt und sie dem Webbrowser zur Verfügung stellt?

+0

Nur um Verwirrung zu beseitigen, verwende ich Struts2 mit Convention/Rest-Plugins, aber laut der Servlet-3.0-Dokumentation sollte das egal sein, aber es funktioniert überhaupt nicht! Ich brauche Hilfe. –

Antwort

5

Die Art, wie das Glas gebaut wird, ist korrekt. Tomcat 7 wird mit dem Jargon Servlet 3.0 ausgeliefert, es werden jedoch keine Ressourcen aus dem Jar bereitgestellt, es sei denn, die Datei web.xml gibt explizit an, dass es sich um Version 3.0 handelt. Tomcat geht nicht davon aus, dass Sie Servlet 3.0-Funktionalität wünschen.

In Ihrem web.xml, Ihr Web-App-Tag muß wie folgt starten:

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

Hinweis, die Verweise auf Version 3.0

Sobald Sie das Web-App angeben ist Version 3.0 erhalten Sie Zugriff auf Servlet 3.0-Funktionalität.