Question

Je suis désolé si je te demande quelque chose qui a été demandé à 1000 fois, mais je recherchais et n'a rien trouvé:)

J'ai 2 installations de tomcat. tomcat 6 sur les fenêtres et tomcat 7 sur machine Linux. J'ai un projet qui utilise le printemps et a une teneur en statique que je voudrais être en mesure de servir sans faire les demandes passent par Spring.

voici ma configuration de 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>

mes fichiers statiques sont situés dans le dossier « statique » à côté de dossier WEB-INF.

Maintenant, la chose drôle est que sur tomcat7 quand je fais une demande de http: // myserver.com/myproject/static/css/main.css il recherche le fichier dans /webapps/myproject/static/css/main.css mais tomcat6 il cherche dans / webapps / myproject / css / main.css et produit une erreur en disant qu'il n'y a pas un tel fichier.

quelle configuration dois-je modifier pour les deux serveurs fonctionnent de la même façon?

Était-ce utile?

La solution

Vous abuser effectivement servlet par défaut de Tomcat. Le servlet par défaut n'est pas DÉFINIES par l'API Servlet et spécifique au conteneur de servlet. le servlet par défaut de Tomcat est connu pour avoir un bug pour être en mesure d'exposer tout le contenu de /WEB-INF et /META-INF en cas d'abus de cette façon, mettre des portes ouvertes à des informations sensibles présentes. Ceci est été rapporté comme question 50026 et été fixé dans Tomcat 6.0 .30 et au-delà.

La solution est simple: vous ne devriez pas explicitement la cartographie de la servlet par défaut dans votre web.xml du tout. Comme il est indiqué dans le rapport de bogue, vous devez utiliser cette approche à la place.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top