Estou tentando alterar o aplicativo padrão de um servidor da Web Tomcat 6 para um aplicativo diferente de "ROOT" (dentro da pasta webapps). Qual é a melhor maneira de fazer isso?
Existem três métodos:
Primeiro desligue o seu Tomcat a partir do bin
diretório ( sh shutdown.sh
). Em seguida, exclua todo o conteúdo da sua webapps
pasta Tomcat ( rm -fr *
). Em seguida, renomeie seu arquivo WAR para ROOT.war
e, finalmente, inicie o Tomcat a partir do bin
diretório ( sh startup.sh
).
Deixe seu arquivo de guerra $CATALINA_BASE/webapps
com o nome original. Desative o
autoDeploy e deployOnStartup no seu elemento Host no server.xml
arquivo. Defina explicitamente todos os Contextos do aplicativo 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 implantará mais seus aplicativos, a menos que encontre seu Contexto no server.xml
.
segundo método: para fazer alterações em qualquer aplicativo, você precisará parar e reiniciar o Tomcat.
Coloque seu arquivo WAR fora de $CATALINA_BASE/webapps
(ele deve estar fora para impedir a implementaçã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 - é derivado do nome do .xml
arquivo, neste caso ROOT.xml
. Consulte a documentação do contêiner de contexto para obter detalhes.
$CATALINA_BASE/conf/[enginename]/[hostname]
diretório (que para minha configuração básica é$CATALINA_HOME/conf/Catalina/localhost
). Consulte a documentação do Context Container .sudo systemctl start tomcatx
ondex
representa o número da versãoAdicionando uma
<Context>
tag na<Host>
tag noserver.xml
para Tomcat 6 vai resolver o problema.Se você usar
path=""
vazio, poderá usar um URL comohttp://localhost/first.do
.Na marca de contexto, defina os atributos
docBase="E:\struts-ITRCbook\myStrutsbook"
ereloadable="true"
, em seguida, termine a marca de contexto.Deve ser algo como isto:
fonte
No Tomcat 7 com essas alterações, eu posso acessar
myAPP
em/
eROOT
em/ROOT
Adicione acima à
<Host>
seção em server.xmlfonte
/ROOT
e tento fazer login na página do Gerenciador usando as credenciais corretas, o acesso é negado. Você saberia como consertar isso?O aplicativo padrão ROOT geralmente é o Tomcat Manager - o que pode ser útil, então tive vontade de mantê-lo por perto.
Então, a maneira como eu criei meu aplicativo ROOT e mantive o TCmgr foi assim.
renomeou ROOT para outra coisa
então criei um link simbólico pelo qual o ROOT aponta para o aplicativo que eu quero usar como padrão.
trabalhou para mim e parecia a abordagem mais fácil.
fonte
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."
fonte
Você pode fazer isso de uma maneira um pouco hack-y:
fonte
Uma solução alternativa seria criar um servlet que envie um redirecionamento para o aplicativo da web padrão desejado e mapear esse servlet para todos os URLs no aplicativo da web ROOT.
Adicione a classe acima a
CATALINA_BASE/webapps/ROOT/WEB-INF/classes/com/example/servlet
.E adicione o seguinte a
CATALINA_BASE/webapps/ROOT/WEB-INF/web.xml
:E, se desejado, você pode modificar facilmente o RedirectServlet para aceitar um parâmetro init para permitir que você defina o webapp padrão sem precisar modificar a fonte.
Não tenho certeza se fazer isso teria implicações negativas, mas testei isso e parece funcionar.
fonte
a configuração context.xml não funcionou para mim. O Tomcat 6.0.29 reclama que o docBase está 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 no ROOT que redireciona para o meu aplicativo assim: response.sendRedirect ("/ MyApplicationXy");
Atenciosamente, Jan
fonte
Eu tenho um problema ao configurar o Tomcat '
server.xml
e adicionar o elemento Context. Ele simplesmente não quer usar minha configuração: http://www.oreillynet.com/onjava/blog/2006/12/configuration_antipatterns_tom.htmlSe você estiver em um
Unix-like
sistema:mv $CATALINA_HOME/webapps/ROOT $CATALINA_HOME/webapps/___ROOT
ln -s $CATALINA_HOME/webapps/your_project $CATALINA_HOME/webapps/ROOT
Feito.
Funciona para mim.
fonte
A melhor maneira de alterar o aplicativo raiz do tomcat. Testado no Tomcat 7 e 8.
Mova para o diretório tomap webapps:
Exemplo na minha máquina:
~/stack/apache-tomcat/webapps
Renomeie, substitua ou exclua a pasta ROOT. Meu conselho é renomear ou criar uma cópia para backup. Exemplo de renomeação de ROOT para RENAMED_ROOT:
mv ROOT RENAMED_ROOT
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)
fonte
Vou dar uma olhada nos meus documentos; existe uma maneira de especificar uma configuração para alterar o caminho do aplicativo Web raiz para longe do ROOT (ou ROOT.war), mas parece ter mudado entre o Tomcat 5 e 6.
Encontrou isto:
http://www.nabble.com/Re:-Tomcat-6-and-ROOT-application...-td20017401.html
Portanto, parece que alterar o caminho raiz (no ROOT.xml) é possível, mas um pouco danificado - você precisa mover seu WAR para fora do diretório de implantação automática. Se importa se eu perguntar por que apenas renomear seu arquivo para ROOT.war não é uma solução viável?
fonte
Não é uma solução muito boa, mas uma maneira é redirecionar do aplicativo ROOT para o YourWebApp. Para isso, você precisa modificar o ROOT index.html.
OU
Referência: http://staraphd.blogspot.com/2009/10/change-default-root-folder-in-tomcat.html
fonte
No Tomcat 7 (no servidor Windows), não adicionei nem editei nada em nenhum arquivo de configuração. Acabei de renomear a pasta ROOT para outra coisa e renomeei minha pasta de aplicativos para ROOT e funcionou bem.
fonte