web-dev-qa-db-fra.com

Comment changer la racine de contexte d'un projet Web dynamique dans Eclipse?

J'ai développé un projet web dynamique dans Eclipse. Maintenant, je peux y accéder via mon navigateur en utilisant l'URL suivante:

http://localhost:8080/MyDynamicWebApp

Maintenant, je veux changer l'URL d'accès à

http://localhost:8080/app

J'ai changé la racine de contexte du projet "Propriétés | Paramètres du projet Web | Racine de contexte".

Mais ça ne fonctionne pas. L'application Web a toujours l'URL d'accès comme précédemment. J'ai redéployé l'application sur Tomcat, redémarré Tomcat et effectué tout ce qui devait être fait, mais l'URL d'accès est la même que précédemment.

J'ai trouvé qu'il n'y avait pas de fichier server.xml joint au fichier WAR. Ensuite, comment Tomcat détermine-t-il que la racine de contexte de mon application Web est /MyDynamicWebApp et m'autorise à accéder à l'application via cette URL?

201
Yatendra Goel

Je suis sûr que vous êtes déjà passé, mais je pensais quand même répondre.

Certaines de ces réponses donnent des solutions de contournement. En réalité, vous devez nettoyer et republier votre projet pour "activer" le nouvel URI. Pour ce faire, cliquez avec le bouton droit de la souris sur votre serveur (dans la vue Serveurs), puis choisissez Nettoyer. Ensuite, vous démarrez (ou redémarrez). La plupart des autres réponses suggèrent que vous fassiez des choses qui accomplissent ceci.

Le fichier en cours de modification est workspace/.metadata/.plugins/org.Eclipse.wst.server.core/publish/publish.dat sauf si vous disposez de plusieurs serveurs dans votre espace de travail. Dans ce cas, il s'agit de publishN.dat sur le même chemin.

J'espère que ça aide quelqu'un.


Je ne suis pas sûr que ce soit approprié ou non. J'édite cette réponse pour donner les étapes exactes pour Eclipse Indigo.

  1. Dans les Propriétés de votre projet, choisissez Paramètres du projet Web .

  2. Changer Contexte racine en app .

    screen shot of Eclipse project properties Web Project Settings

  3. Choisissez Fenêtre> Afficher la vue> Serveurs .

  4. Arrêtez le serveur en cliquant sur la case du carré rouge (info-bulle "Arrêtez le serveur") ou en cliquant en contexte sur la liste de serveurs pour choisir "Arrêter".

  5. Sur le serveur que vous souhaitez utiliser, cliquez dans le contexte pour choisir "Nettoyer ...".

    enter image description here

  6. Cliquez sur OK dans cette boîte de dialogue de confirmation.

    Screenshot of dialog asking to update server configuration to match the changed context root

Vous pouvez maintenant exécuter votre application avec la nouvelle URL "app", telle que:

http://localhost:8080/app/

Faire cela en dehors d'Eclipse, sur votre serveur de production, est encore plus facile -> Renommez le fichier war. Exportez votre application Vaadin en tant que fichier WAR (( Fichier> Exporter> Web> Fichier WAR ). Déplacez le fichier WAR vers le conteneur de servlets de votre serveur Web, tel que Tomcat. Renommez votre fichier WAR en app.war . Lorsque vous démarrez le conteneur de servlets, la plupart des utilisateurs, tels que Tomcat, déploient automatiquement l'application, ce qui inclut l'extension du fichier war dans un dossier. Dans ce cas, nous devrions voir un dossier nommé app . Vous devriez être prêt à partir. Testez votre URL. Pour un domaine tel que * exemple.com ", ce serait:

http://www.example.com/app/

Les programmeurs de la boîte à outils Vaadin peuvent avoir besoin de reconstruire leur ensemble de widgets s'ils utilisent des additifs visuels.

326
Russ Bateman

Après avoir modifié la racine de contexte dans les propriétés du projet, vous devez supprimer votre application Web de Tomcat (à l'aide de l'option Ajouter et supprimer ... du menu contextuel du serveur), redéployer, puis rajouter votre application et redéployer. Cela a fonctionné pour moi.

Si vous êtes frappé, vous avez un autre choix: sélectionnez le serveur Tomcat dans la vue Serveurs. Double-cliquer sur ce serveur (ou sélectionner Ouvrir dans le menu contextuel) ouvre un éditeur multipage contenant une page Modules. Ici, vous pouvez changer le contexte racine de votre module (appelé Path sur cette page).

31
Csaba_H

Si vous exécutez Tomcat à partir d'Eclipse, il n'utilise pas la configuration de votre installation Tomcat actuelle. Il utilise la configuration Tomcat créée et stockée dans le projet "Serveurs". Si vous affichez votre espace de travail Eclipse, vous devriez voir un projet appelé "Serveurs". Développez ce projet "Serveurs" et vous rencontrerez server.xml. Ouvrez ce fichier et faites défiler jusqu'en bas, et vous devriez voir quelque chose comme ça: -

<Context docBase="abc" path="/abc" reloadable="true" source="org.Eclipse.jst.jee.server:abc"/>

Ici, vous pouvez simplement changer le chemin du contexte de votre projet en autre chose.

J'espère que cela t'aides.

24
limc

J'ai essayé la solution suggérée par Russ Bateman ici dans le post

http://localhost:8080/Myapp à http://localhost:8080/somepath/Myapp

Mais cela n'a pas fonctionné pour moi car j'avais besoin d'un fichier * .war pouvant contenir la configuration et non l'instance individuelle du serveur sur ma machine locale.

référence

Pour ce faire, jboss-web.xml doit être placé dans WEB-INF.

<?xml version="1.0" encoding="UTF-8"?>
 <!--
Copyright (c) 2008 Object Computing, Inc.
All rights reserved.
-->
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 4.2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">

  <jboss-web>
  <context-root>somepath/Myapp</context-root>
  </jboss-web>
17
tosha Shah

Ne définir aucun chemin dans la boîte de dialogue d'édition de modules Web Eclipse m'a permis d'accéder au projet sans aucun composant de chemin dans l'URL (c'est-à-dire ROOT).

Vous pouvez accéder à la boîte de dialogue d'édition des modules Web en appuyant sur F3 si vous sélectionnez Tomcat dans la vue "Serveurs" ou en double-cliquant dessus.

Quelques captures d'écran:

7
Ray Hulha

Je sais que la réponse a déjà été acceptée. Mais, juste au cas où quelqu'un utilisant Maven voudrait réaliser la même chose, il suffit de placer le finalName dans le maven build quel que soit le nom que vous voulez donner et faire un maven -> projet de mise à jour

<build>
    <finalName><any-name></finalName>
    <plugins><provide-plugins-needed></plugins>
<build>
6
Karthik

Apache Tomcat conserve le chemin du contexte du projet dans le chemin server.xml. Pour chaque projet Web sur Eclipse, il y a une balise à partir de là, vous pouvez le changer.
Supposons qu'il y ait deux ou trois projets déployés sur le serveur. Pour chaque chemin de contexte est stocké dans. Cette balise est située dans le fichier server.xml du serveur créé sur Eclipse.

J'ai un projet pour il sur le chemin racine de contexte dans le serveur est:

<Context docBase="Test" path="/test" reloadable="true" source="org.Eclipse.jst.jee.server:Test1"/>

Ce chemin représente le chemin de contexte de votre application Web. En modifiant ce chemin, le chemin du contexte de votre application Web changera.

6
Amar Poddar

Si le projet est maven, changez le "finalName" dans pom.xml et mettez à jour le projet en tant que Maven. Cela a fonctionné pour moi.

4
Sudarshani Perera

Dans Glassfish, vous devez également modifier le fichier WEB-INF/glassfish-web.xml.

<glassfish-web-app>
    <context-root>/myapp</context-root>
</glassfish-web-app>

Ainsi, lorsque vous cliquez dans "Exécuter en tant que> Exécuter sur le serveur", il s’ouvrira correctement.

2
Alan Weiss

Je voulais juste ajouter que si vous ne voulez pas du tout que votre nom d’application se trouve dans le contexte racine, il vous suffit de mettre "/" (pas de guillemets, juste la barre oblique) dans Eclipse -> Paramètres du projet Web -> Entrée racine de contexte

Cela déploiera la webapp à juste http: // localhost: 8080 /

Bien sûr, cela causera des problèmes avec les autres applications Web que vous tentez d’exécuter sur le serveur.

Il m'a fallu une éternité pour rassembler tout cela… alors même si cet article a 8 ans, j'espère que cela aidera quand même quelqu'un!

2
arcademonkey

Si vous utilisez Eclipse pour déployer votre application. Nous pouvons utiliser ce plugin maven

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-Eclipse-plugin</artifactId>
    <version>2.10</version>
    <configuration>
        <wtpversion>2.0</wtpversion>
        <wtpContextName>newContextroot</wtpContextName>
    </configuration>
</plugin>

allez maintenant dans le dossier racine de votre projet et ouvrez Invite cmd à cet emplacement, tapez cette commande:

mvn Eclipse: eclipse -Dwtpversion = 2.0

Vous devrez peut-être redémarrer Eclipse ou, dans la vue serveur, supprimer le serveur et créer un calendrier pour voir les effets. Je me demande si cet exercice a un sens dans la vie réelle mais fonctionne.

0
supernova

Dans le projet Java, ouvrez le dossier .settings. là, localisez le fichier nommé "org.Eclipse.wst.common.component". Modifiez la balise <wb-module deploy-name = "NEW_NAME">.

Vous pouvez aussi vouloir changer la racine de contexte dans les propriétés du projet.

0
user418836