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 ?
Réponses
Trop de publicités?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 .
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.
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
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 :
mv $CATALINA_HOME/webapps/ROOT $CATALINA_HOME/webapps/___ROOT
ln -s $CATALINA_HOME/webapps/your_project $CATALINA_HOME/webapps/ROOT
C'est fait.
Ça marche pour moi.