Como mudar o aplicativo ROOT?

Estou tentando alterar o aplicativo padrão de um servidor da web do Tomcat 6 para um aplicativo diferente de “ROOT” (dentro da pasta webapps). Qual é a melhor maneira de fazer isso?

Existem três methods:

  • Primeiro desligue seu Tomcat do diretório bin ( sh shutdown.sh ). Em seguida, exclua todo o conteúdo da sua pasta de rm -fr * webapps Tomcat ( rm -fr * ). Em seguida, renomeie seu arquivo WAR para ROOT.war e, finalmente, inicie seu Tomcat a partir do diretório bin ( sh startup.sh ).

  • Deixe seu arquivo war em $CATALINA_BASE/webapps com o nome original. Desative o autoDeploy e o deployOnStartup em seu elemento Host no arquivo server.xml . Defina explicitamente todos os contextos de aplicativo no server.xml , especificando os atributos path e docBase . Você deve fazer isso porque desabilitou todos os mecanismos de implantação automática do Tomcat e o Tomcat não implementará mais seus aplicativos, a menos que encontre seu Contexto no server.xml .

    segundo método: para fazer qualquer alteração em qualquer aplicativo, você terá que parar e reiniciar o Tomcat.

  • Coloque seu arquivo WAR fora de $CATALINA_BASE/webapps (ele deve estar fora para evitar a implantação dupla). Coloque um arquivo de contexto chamado ROOT.xml em $CATALINA_BASE/conf/ . O único elemento neste arquivo de contexto DEVE ter um atributo docBase apontando para o local do seu arquivo WAR. O elemento path não deve ser definido – ele é derivado do nome do arquivo .xml , neste caso ROOT.xml . Consulte a documentação do contêiner Contexto para detalhes.

Referência

Adicionar uma tag na tag no server.xml para o Tomcat 6 resolverá o problema.

Se você usar path="" vazio, poderá usar um URL como http://localhost/first.do .

Nos atributos do conjunto de tags de contexto docBase="E:\struts-ITRCbook\myStrutsbook" e docBase="E:\struts-ITRCbook\myStrutsbook" reloadable="true" , encerre a tag de contexto.

Deve ser algo como isto:

     

No Tomcat 7 com essas mudanças, eu posso acessar myAPP em / e ROOT em /ROOT

   

Adicione acima à seção no server.xml

O aplicativo padrão ROOT é geralmente o Tomcat Manager – que pode ser útil, por isso, é como mantê-lo por perto.

então a maneira que eu fiz o meu aplicativo ROOT e mantive o TCmgr foi assim.

renomeado ROOT para outra coisa

mv ROOT TCmgr

Em seguida, criei um link simbólico por meio do qual o ROOT aponta para o aplicativo que eu quero tornar o padrão.

ln -s your app ROOT

funcionou para mim e parecia a abordagem mais fácil.

–nestochan

De acordo com os documentos do Apache Tomcat, você pode alterar o aplicativo criando um arquivo ROOT.xml. Veja isto para mais informações:

http://tomcat.apache.org/tomcat-6.0-doc/config/context.html

“O aplicativo da web padrão pode ser definido usando um arquivo chamado ROOT.xml.”

Você pode fazer isso de uma forma um pouco hackeada:

  1. Pare o Tomcat
  2. Mova o ROOT.war para o lado e rm -rf webapps / ROOT
  3. Copie o webapp que você deseja para o webapps / ROOT.war
  4. Inicie o Tomcat

O terceiro método do danny-london não funcionou para mim no Tomcat 7, mas funciona se você colocar o arquivo ROOT.xml no diretório $CATALINA_BASE/conf/[enginename]/[hostname] (que para minha configuração básica é $CATALINA_HOME/conf/Catalina/localhost ). Consulte a documentação do Contêiner de Contexto .

Uma solução alternativa seria criar um servlet que envia um redirecionamento para o webapp padrão desejado e mapear esse servlet para todos os urls na aplicação web ROOT.

 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"); } } 

Adicione a class acima para
CATALINA_BASE/webapps/ROOT/WEB-INF/classs/com/example/servlet .
E adicione o seguinte para
CATALINA_BASE/webapps/ROOT/WEB-INF/web.xml :

   Redirect Redirect com.example.servlet.RedirectServlet   Redirect /  

E, se desejar, você poderá modificar facilmente o RedirectServlet para aceitar um init param para permitir que você defina o webapp padrão sem ter que modificar a fonte.

Não tenho certeza se isso teria implicações negativas, mas testei isso e parece funcionar.

a configuração context.xml não funcionou para mim. Tomcat 6.0.29 reclama sobre o docBase estar dentro do appBase: … Para o Tomcat 5 isso realmente funcionou.

Portanto, uma solução é colocar o aplicativo na pasta ROOT.

Outra solução muito simples é colocar um index.jsp para ROOT que redireciona para meu aplicativo da seguinte forma: response.sendRedirect (“/ MyApplicationXy”);

Atenciosamente, Jan

Eu tenho um problema quando configurado server.xml Tomcat ‘e adicionado elemento de contexto. Ele simplesmente não quer usar minha configuração: http://www.oreillynet.com/onjava/blog/2006/12/configuration_antipatterns_tom.html

Se você está em um Unix-like :

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

Feito.

Funciona para mim.

Eu vou olhar para os meus docs; Existe uma maneira de especificar uma configuração para alterar o caminho do aplicativo da Web raiz para longe do ROOT (ou ROOT.war), mas parece ter mudado entre o Tomcat 5 e o 6.

Encontrei isto:

http://www.nabble.com/Re:-Tomcat-6-and-ROOT-application…-td20017401.html

Então, parece que mudar o caminho da raiz (em ROOT.xml) é possível, mas um pouco quebrado – você precisa mover seu WAR para fora do diretório de auto-implantação. Se importa se eu perguntar por que apenas renomear seu arquivo para ROOT.war não é uma solução viável?

Não é uma solução muito boa, mas é uma maneira de redirect a partir do aplicativo ROOT para YourWebApp. Para isso você precisa modificar o ROOT index.html.

   Redirecting to /YourWebApp     

OU

   Redirecting to /YourWebApp      

Referência: http://staraphd.blogspot.com/2009/10/change-default-root-folder-in-tomcat.html

Última maneira de alterar o aplicativo de raiz do tomcat. Testado no Tomcat 7 e 8.

  1. Mover para o diretório webapps do tomcat:

    Exemplo na minha máquina: ~/stack/apache-tomcat/webapps

  2. Renomeie, substitua ou exclua a pasta ROOT. Meu conselho é renomear ou criar uma cópia para backup. Exemplo renomear ROOT para RENAMED_ROOT:

    mv ROOT RENAMED_ROOT

  3. Mova o arquivo war com seu aplicativo para o diretório tomcat webapps (é um diretório onde estava a pasta ROOT antiga, na minha máquina: ~ / stack / apache-tomcat / webapps)

O arquivo de guerra deve ter um nome ROOT.war . Renomeie sua aplicação se for necessário: yourApplicationName.war -> ROOT.war

  1. Reinicie o tomcat. Depois de reiniciar seu aplicativo será uma raiz.

No Tomcat 7 (no servidor Windows), não adicionei ou editei nada em nenhum arquivo de configuração. Acabei de renomear a pasta ROOT para outra coisa e renomei minha pasta de aplicativos para ROOT e funcionou bem.