Un site Java existant est conçu pour s'exécuter sous "/" sur tomcat et de nombreuses références spécifiques aux chemins absolus fixes tels que "/ dir/dir/page ". Voulez-vous migrer vers un package Java EE, où le site devra s'exécuter sous une racine de contexte, par ex. "/ dir/dir/page" devient "/ mon-contexte-racine/dir/dir/page"Gestion des références de chemin de contexte lors de la migration du site "/" vers un package Java EE
Maintenant, la racine de contexte peut être facilement avec ServletRequest.getContextPath(), mais cela signifie encore beaucoup de modifications de code pour migrer une base de code importante. La plupart de ces références sont en HTML littéral.
J'ai expérimenté l'utilisation de filtres de servlets pour faire des réécritures sur le HTML sortant, et cela semble fonctionner correctement. Mais cela introduit des frais généraux, et je ne verrais pas cela comme une solution permanente. (Voir EnforceContextRootFilter-1.0-src.zip pour l'approche du filtre de servlet).
Y a-t-il de meilleures approches pour résoudre ce problème? Quelque chose d'évident me manque? Tous les commentaires ont apprécié!
Je me rends compte peut-être l'évidence, mais les applications JavaEE peuvent encore être déployés dans le contexte racine (/). Cette configuration est généralement gérée dans un fichier de déploiement spécifique à un serveur d'applications (par exemple, jboss-web.xml, sun-web.xml). –
@jt bon point, et j'ai demandé si je manquais quelque chose d'évident ;-) Dans mon cas, j'ai besoin de l'application à déployer avec d'autres applications sur le même serveur, et ne peut pas monopoliser le contexte racine (et aussi acceptable pour fonctionner sur un autre hôte virtuel). – tardate