Frage

Es tut mir leid, wenn ich etwas frage, das 1000 Mal gefragt wurde, aber ich habe danach gesucht und nichts gefunden :)

Ich habe 2 Tomcat -Installationen. Tomcat 6 unter Windows und Tomcat 7 auf Linux -Maschine. Ich habe ein Projekt, das Frühling verwendet und statische Inhalte hat, die ich bedienen möchte, ohne die Anfragen durch den Frühling zu steuern.

Hier ist meine Servlet -Konfiguration:

<servlet-mapping>
  <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
 <servlet-name>default</servlet-name>
 <url-pattern>/static/*</url-pattern>
</servlet-mapping>

Meine statischen Dateien befinden sich im "statischen" Ordner neben dem Web-Inf-Ordner.

Nun ist das Lustige, dass auf Tomcat7, wenn ich eine Anfrage mache http://myserver.com/myproject/static/css/main.css Es sucht nach der Datei in /webapps/myproject/static/css/main.css, aber auf Tomcat6 sucht es danach in /webapps/myproject/css/main.css und erzeugt einen Fehler, der besagt, dass es keine solche Datei gibt.

Welche Konfiguration sollte ich optimieren, damit beide Server genauso arbeiten können?

War es hilfreich?

Lösung

Sie missbrauchen tatsächlich Tomcats Standard -Servlet. Das Standard -Servlet wird nicht durch die Servlet -API und spezifisch für den Servlet Container definiert. Es ist bekannt /WEB-INF und /META-INF Wenn Sie auf diese Weise missbraucht werden, können Sie hiermit Türen für vertrauliche Informationen öffnen. Dies wurde als berichtet als Ausgabe 50026 und wird in Tomcat 6.0.30 und vorne festgelegt.

Die Lösung ist einfach: Sie sollten den Standard -Servlet in Ihrem nicht ausdrücklich abbilden web.xml überhaupt. Wie im Fehlerbericht angegeben, müssen Sie verwenden dieser Ansatz stattdessen.

Andere Tipps

Eine weitere, einfachere Antwort von Casey auf die gleiche Frage, die Balusc Links zu Links können eine Begrüßungsdateiliste angeben und die letzte Begrüßungsdatei in das URL -Muster Ihres Anwendungsservlets abbilden. In dieser Konfiguration verarbeitet das Standard -Servlet statische Inhalte, während unübertroffene URLs in die Anwendung fallen.

Die vollständige Antwort mit Code von Casey

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top