138 votes

Tomcat 6 : Comment changer l'application racine

J'essaie de changer l'application par défaut du serveur web Tomcat 6 pour une autre application que "Root" (dans le dossier webapps). Quelle est la meilleure façon de procéder ?

13voto

gareth_bowles Points 10605

Vous pouvez le faire d'une manière un peu bricolée :

  1. Arrêtez Tomcat
  2. Mettez Root.war de côté et rm -rf webapps/Root
  3. Copiez la webapp que vous voulez dans webapps/Root.war
  4. Démarrer Tomcat

5voto

Michael Scheper Points 552

La troisième méthode de @danny-london n'a pas fonctionné pour moi dans Tomcat 7, mais elle fonctionne si vous placez le fichier Root.xml dans le dossier de l'utilisateur. $CATALINA_BASE/conf/[enginename]/[hostname] (qui pour mon installation plutôt basique est $CATALINA_HOME/conf/Catalina/localhost ). Se référer à la documentation sur le conteneur de contexte .

3voto

DixonJ Points 1340

Une autre solution consisterait à créer une servlet qui envoie une redirection vers la webapp par défaut souhaitée et à affecter cette servlet à toutes les urls de la webapp racine.

package com.example.servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class RedirectServlet extends HttpServlet {

  @Override
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.sendRedirect("/myRootWebapp");
  }
}

Ajoutez la classe ci-dessus à
CATALINA_BASE/webapps/ROOT/WEB-INF/classes/com/example/servlet .
Et ajoutez ce qui suit à
CATALINA_BASE/webapps/ROOT/WEB-INF/web.xml :

  <servlet>
    <display-name>Redirect</display-name>
    <servlet-name>Redirect</servlet-name>
    <servlet-class>com.example.servlet.RedirectServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Redirect</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

Et si vous le souhaitez, vous pouvez facilement modifier le RedirectServlet pour qu'il accepte un paramètre init afin de vous permettre de définir la webapp par défaut sans avoir à modifier la source.

Je ne suis pas sûr que cela ait des conséquences négatives, mais je l'ai testé et cela semble fonctionner.

2voto

Jan Points 31

La configuration context.xml n'a pas fonctionné pour moi. Tomcat 6.0.29 se plaint que la docBase se trouve dans l'appBase : ... Pour Tomcat 5, cela a fonctionné.

Une solution consiste donc à placer l'application dans le dossier racine.

Une autre solution très simple est de mettre un index.jsp à Root qui redirige vers mon application comme ceci : response.sendRedirect("/MyApplicationXy") ;

Meilleures salutations, Jan

1voto

AC de Souza Points 21

J'ai un problème lors de la configuration de Tomcat'. server.xml et a ajouté l'élément Contexte. Il ne veut simplement pas utiliser ma configuration : http://www.oreillynet.com/onjava/blog/2006/12/configuration_antipatterns_tom.html

Si vous êtes dans une Unix-like système :

  1. mv $CATALINA_HOME/webapps/ROOT $CATALINA_HOME/webapps/___ROOT
  2. ln -s $CATALINA_HOME/webapps/your_project $CATALINA_HOME/webapps/ROOT

C'est fait.

Ça marche pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X