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?

È stato utile?

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.

La risposta completa, con il codice, da Casey

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top