web-dev-qa-db-fra.com

déployer une webapp d'Eclipse au contexte racine Tomcat

Je déploie une application .war depuis Eclipse en ajoutant la facette "Dynamic Web Module", puis en cliquant avec le bouton droit sur le projet et en sélectionnant "Exécuter en tant que -> Exécuter sur le serveur".

Cela fonctionne très bien, mais par défaut, le projet est déployé sur le /web contexte de Tomcat, car le nom du projet est web. Existe-t-il un moyen de déployer Eclipse vers Tomcat sans changer le nom du projet en ROOT?

45
Dónal

Vous devez aller à Server View .. double-cliquez sur Tomcat, cela ouvre une nouvelle fenêtre (avec 2 onglets). Sélectionnez celui qui dit Modules, votre application y serait listée (avec le chemin du contexte). Vous pouvez changer le chemin de contexte de/web vers n'importe quoi d'autre d'ici.

Alternativement, vous pouvez ouvrir le fichier server.xml pour rechercher une balise appelée contexte. dans cette balise, vous trouverez le contexte comme/web .. changez-le.

82
Anantha Sharma

Cliquez avec le bouton droit sur votre projet dans Eclipse et sélectionnez Propriétés-> Paramètres du projet Web. Modifiez le nom du contexte ici.

Vous pouvez également le modifier dans le fichier .settings/org.Eclipse.wst.common.component à l'intérieur de votre projet

18
maximdim

Dans Paramètres du projet Web pour le projet, définissez racine de contexte sur "/". (Sans guillemets)

Juste au cas où vous utilisez Apache2 avec mod_proxy. Dans ma définition d'hôte virtuel, j'ai une entrée Location pour le contexte racine:

  <Proxy balancer://ajpCluster>
    BalancerMember ajp://localhost:18009 route=s1
    BalancerMember ajp://localhost:28009 route=s2
  </Proxy>

  # A "Location" entry for hosting static content.  Would put mod_expire settings
  # here
  <Location /resources>
    ProxyPass !  #Don't proxy this location
    ExpiresActive on
    ExpiresDefault "access plus 1 seconds"
    ExpiresByType application/javascript "access plus 1 months"
  </Location>

  #...

  # This must be the last "Location" if you are overloading others, otherwise
  # the others won't load as Apache uses the first one listed that matches
  <Location />
    ProxyPass balancer://ajpCluster stickysession=JSESSIONID
  </Location>
7
Ivan Pointer

Après avoir configuré un serveur dans Eclipse, vous pouvez le configurer davantage et ajouter/supprimer/modifier tous les modules (aka contextes/webapps) que vous souhaitez qu'il héberge. Vous devriez avoir une fenêtre Serveurs qui répertorie le serveur (sinon: Fenêtre> Afficher la vue> Serveurs). Double-cliquez sur le serveur pour ouvrir la page de configuration. Il y a 2 onglets, mais ils sont dans le coin inférieur gauche. Ouvrez les modules, tout module que vous avez ajouté sera répertorié. Si vous voulez qu'un module soit le module par défaut (donc si vous tapez localhost, il servira de serveur index.jsp, par exemple) assurez-vous que ce chemin indique "/". La valeur par défaut sera celle qui se trouve dans vos propriétés Webapps> Paramètres du projet Web, et ce sera généralement le nom du projet. Si vous le définissez ici, il ne vous laissera pas le laisser vide, utilisez donc "/".

Assurez-vous d'enregistrer les modifications de configuration pour votre serveur. Vous devrez peut-être également le "publier" pour que les modifications se propagent au serveur réel.

Une dernière chose à vérifier est de trouver l'installation du serveur, ouvrez conf/server.xml et recherchez vos contextes. Vous pouvez également y changer le chemin. Notez que path = "" équivaut à "/", Tomcat en fera l'application ROOT. Notez également qu'Eclipse créera une webapp vide nommée ROOT lorsque vous la publierez pour la première fois (ce sera également dans server.xml). Il est sûr de le supprimer. Même si votre application déployée aura le nom du projet comme nom d'application Web, tant que le chemin est "", elle la traitera comme la racine par défaut.

4
Ed Pike

Right click the application > Properties > Web Project setings et définissez la racine de contexte sur ROOT (ou sur vide - je ne l'ai pas essayé, alors essayez les deux et faites-moi savoir lequel a fonctionné)

1
Bozho