Récemment, j'ai mis à niveau mon serveur tomcat de la version 6.x à la version 7.x la plus récente.
J'ai eu peu de problèmes, espérant obtenir de l'aide.
J'ai une application qui appelle MyApp
Sur tomcat6, lorsque je suis allé sur http://www.example.com/MyApp/page/ , j'obtiendrais normalement le résultat souhaité.
Maintenant, sur tomcat7, en visitant la même URL exacte (avec la barre oblique de fin), je reçois l'erreur: "La ressource n'est pas disponible", car le tomcat pense que / MyApp / page / est un nom Webapp complet au lieu d'être des noms de demande sous la webapp MyApp.
J'ai besoin de la barre oblique à la fin de mon URL car sinon j'obtiens l'erreur: "HTTP Status 405 - Request method 'GET' not supported" ce qui est OK car je n'ai vraiment pas autorisé la méthode GET à la requête "page" .
Si quelqu'un sait comment dire à tomcat que la barre oblique de fin après le chemin de la webapp existante ne doit pas supposer la rediriger vers une nouvelle webapp appelle la "chaîne" entière et simplement traiter la demande comme sur tomcat6, ce serait génial!
web.xml
mappé/*
? Sinon, tomcat utilise une liste de fichiers de bienvenue. Normalement, seul le premier segment de chemin est interprété comme une racine de contexte. Donc, ne pas trouver votre application web ne semble pas être le problème.MyApp
tomcat utilisera ce contexte d'application Web en utilisant le chemin restantpage/
. Sinon, il recherchera leROOT
contexte, en utilisant le chemin complet pour une recherche.Réponses:
Question ancienne, mais depuis que je me suis récemment battu avec la barre oblique de fin dans Tomcat 8, je sais que les problèmes avec la barre oblique continuent de tourmenter le monde des utilisateurs de Tomcat. :-)
Vous pourriez rencontrer des changements dans la façon dont Tomcat gère les redirections lors du chargement du contexte racine. Consultez le bogue 58660 et lisez une partie de la discussion des développeurs là-bas. Vous devrez peut-être désactiver le mappeur par défaut en modifiant l'
mapperContextRootRedirectEnabled
attribut de l'Context
élément dansconf/context.xml
.la source
Vérifiez votre liste de fichiers de bienvenue. Ce qui suit est de la spéculation ...
Je crois que l'essentiel du problème est lorsque Tomcat est présenté avec un / - Il a quelques options - Itérer sur la liste des fichiers de bienvenue - Sur rien étant là - afficher la liste des répertoires (si activé)
Voici où le plaisir commence ... Beaucoup de gens veulent utiliser * .do pour des choses comme des entretoises. Ils veulent donc que index.do soit la page d'accueil. Ou également commun est index.jsp où * .jsp est mappé au JspServlet.
Voici où les choses s'amusent. Disons donc que vos fichiers de bienvenue sont index.jsp, index.do.
Ce que fait Tomcat (IIRC), c'est d'abord parcourir la liste des fichiers de bienvenue à la recherche de ressources de ce nom.
Ensuite, il effectuera une deuxième passe à la recherche de mappages qui correspondent. Donc, si index.jsp est spécifié dans la liste de bienvenue et * .jsp est mappé. Ensuite, tomcat essaiera de transmettre à index.jsp et vous obtiendrez un 404.
Je vais donc supposer que vous avez un mappage de servlet et un fichier de bienvenue qui se chevauchent. Et le comportement de cette servlet ne prend pas en charge GET. (D'où le 405)
la source
Si votre projet utilise le module Web dynamique de la v2.2, vous devez créer explicitement au moins un fichier (peut être un fichier html vide) présent dans web.xml (par exemple: index.html) dans votre WebContent.
la source