contenuti statici. differenza di comportamenti tomcat6 e tomcat7
Domanda
Mi dispiace se sto chiedendo qualcosa che è stato chiesto 1000 volte, ma ho cercato e non ha trovato nulla:)
Ho 2 installazioni Tomcat. tomcat 6 sulle finestre e tomcat 7 sulla macchina Linux. Ho un progetto che utilizza la primavera e ha alcuni contenuti statici che mi piacerebbe essere in grado di servire senza fare le richieste passano attraverso primavera.
Ecco la mia configurazione servlet:
<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>
i miei file statici si trovano in "statica" della cartella accanto alla cartella WEB-INF.
Ora la cosa divertente è che il tomcat7 quando faccio una richiesta di http: // myserver.com/myproject/static/css/main.css si cerca il file in /webapps/myproject/static/css/main.css ma su tomcat6 viene cercato in / webapps / myproject / css / main.css e produce un errore che dice che non c'è nessun file.
che configurazione devo modificare per entrambi i server di lavorare allo stesso modo?
Soluzione
Si sta effettivamente abusando servlet predefinito di Tomcat. Il servlet predefinito non è definied dall'API servlet e specifico al contenitore servlet. servlet predefinito di Tomcat è noto per avere un bug per essere in grado di esporre tutti i contenuti di /WEB-INF
e /META-INF
quando abusato in questo modo, con la presente mettendo porte si aprono alle informazioni sensibili. Questo è stato segnalato come questione 50026 ed è stato fissato in Tomcat 6.0 .30 in poi.
La soluzione è semplice: non si dovrebbe essere esplicitamente mappatura del servlet predefinito nel vostro web.xml
a tutti. Come indicato nella segnalazione di bug, è necessario utilizzare questo approccio .
Altri suggerimenti
Un altro, la risposta più semplice fornito da casey per la stessa domanda che BalusC collegamenti per è quello di specificare un elenco di file di benvenuto e mappare il file ultima benvenuto a modello l'URL del tuo servlet dell'applicazione. In questa configurazione, le maniglie di default servlet di contenuto statico, mentre qualsiasi URL senza eguali cadono attraverso l'applicazione.