J'ai une application Web (fichier WAR). Lorsque je le déploie via Eclipse 3.5 à l'aide des outils WTP, je suis en mesure de démarrer le serveur Tomcat à partir d'Eclipse et d'afficher toutes les pages de l'application. Cependant, je ne vois pas mon fichier WAR dans le dossier webapps du répertoire personnel de Tomcat (ou d'ailleurs son format éclaté). J'avais l'impression que Tomcat lit toutes les applications Web sous son dossier webapps. Comment Tomcat lit-il mon application dans ce cas? J'utilise Tomcat 5.5.17 comme serveur d'applications.
Tout est défini dans le context.xml
qu'Eclipse a donné à Tomcat. Si vous souhaitez configurer ce comportement, double-cliquez sur l'instance Tomcat dans la vue des serveurs et vérifiez la section Emplacements des serveurs. Pour réaliser ce que vous voulez/attendiez initialement, vous devez sélectionner tiliser l'installation de Tomcat et, si nécessaire, également spécifier le Chemin de déploiement.
J'ai récemment dû trouver plus de détails sur ce sujet pour résoudre les problèmes de démarrage de l'application, je le note donc ici.
Il est déterminé par la configuration du serveur. Double-cliquez sur le serveur dans la vue des serveurs pour voir le serveur "Vue d'ensemble". Dans la section "Emplacements des serveurs", une valeur par défaut est configurée:
.metadata/.plugins/org.Eclipse.wst.server.core/tmp0
wtpwebapps
Le "module" d'application est également défini dans l'onglet "Modules" de la configuration du serveur qui spécifie le chemin de l'application, la base de documents et le nom du module. Par exemple, vous déployez votre projet myapp
sur le chemin /MyApp
.
Donc, si votre espace de travail est /home/me/workspace/myapp
, le chemin d'accès au répertoire de déploiement de votre application est:
/home/me/workspace/myapp/.metadata/.plugins/org.Eclipse.wst.server.core/tmp0/wtpwebapps/myapp.
Le contenu du déploiement est déterminé par "Deployment Assembly" dans les propriétés du projet. Chaque entrée de l'assembly définit quels fichiers sont déployés sur quel chemin. Exemple:
/src/main/Java -> WEB-INF/classes
/src/main/resources -> WEB-INF/classes
/src/main/webapp -> /
Maven Dependencies -> WEB-INF/lib
Donc, si vous avez le fichier src/main/webapp/WEB-INF/web.xml
dans votre arborescence source, il sera déployé sur:
/home/me/workspace/myapp/.metadata/.plugins/org.Eclipse.wst.server.core/tmp0/wtpwebapps/myapp/WEB-INF/web.xml