Come modificare l’applicazione ROOT?

Sto provando a cambiare l’applicazione predefinita di un server web Tomcat 6 in un’applicazione diversa da “ROOT” (nella cartella webapps). Qual è il modo migliore per farlo?

Ci sono tre metodi:

  • Per prima cosa spegnere il Tomcat dalla sua directory bin ( sh shutdown.sh ). Quindi elimina tutto il contenuto della cartella webapps Tomcat ( rm -fr * ). Quindi rinominare il file WAR in ROOT.war e infine avviare Tomcat dalla directory bin ( sh startup.sh ).

  • Lascia il tuo file di guerra in $CATALINA_BASE/webapps con il suo nome originale. Distriggers autoDeploy e deployOnStartup nell’elemento Host nel file server.xml . Definire esplicitamente tutti i contesti delle applicazioni in server.xml , specificando sia gli attributi path che docBase . Devi farlo perché hai disabilitato tutti i meccanismi di distribuzione automatica di Tomcat e Tomcat non distribuirà più le tue applicazioni a meno che non trovi il loro Contesto nel server.xml .

    secondo metodo: per apportare modifiche a qualsiasi applicazione, dovrai interrompere e riavviare Tomcat.

  • Inserisci il tuo file WAR al di fuori di $CATALINA_BASE/webapps (deve essere all’esterno per evitare la doppia implementazione). Inserire un file di contesto denominato ROOT.xml in $CATALINA_BASE/conf/ . Il singolo elemento in questo file di contesto DEVE avere un attributo docBase che punta alla posizione del tuo file WAR. L’elemento path non dovrebbe essere impostato – è derivato dal nome del file .xml , in questo caso ROOT.xml . Vedere la documentazione per il contenitore del contesto per i dettagli.

Riferimento

L’aggiunta di un tag nel tag in server.xml per Tomcat 6 risolverà il problema.

Se usi path="" vuoto puoi usare un URL come http://localhost/first.do .

Nel tag di contesto set attributi docBase="E:\struts-ITRCbook\myStrutsbook" e docBase="E:\struts-ITRCbook\myStrutsbook" reloadable="true" , quindi termina il tag di contesto.

Dovrebbe assomigliare a qualcosa di simile a questo:

     

In Tomcat 7 con queste modifiche, sono in grado di accedere a myAPP a / e ROOT a /ROOT

   

Aggiungi sopra alla sezione in server.xml

L’app ROOT di solito è Tomcat Manager – che può essere utile quindi sentirsi come se fosse in giro.

quindi il modo in cui ho reso la mia app ROOT e mantenuto TCmgr era così.

ribattezzato ROOT con qualcos’altro

mv ROOT TCmgr

quindi creato un collegamento simbolico in base al quale ROOT punta all’app che voglio rendere predefinita.

ln -s la your app ROOT

ha funzionato per me e sembrava l’approccio più semplice.

–nestochan

Secondo i documenti di Apache Tomcat, è ansible modificare l’applicazione creando un file ROOT.xml. Vedi questo per maggiori informazioni:

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

“L’applicazione Web predefinita può essere definita utilizzando un file chiamato ROOT.xml.”

Puoi farlo in un modo leggermente hacker:

  1. Ferma Tomcat
  2. Spostare ROOT.war a parte e rm -rf webapps / ROOT
  3. Copia la webapp che vuoi app web / ROOT.war
  4. Avvia Tomcat

Il terzo metodo di @ danny-london non ha funzionato per me in Tomcat 7, ma funziona se si posiziona il file ROOT.xml nella directory $CATALINA_BASE/conf/[enginename]/[hostname] (che per la mia configurazione piuttosto di base è $CATALINA_HOME/conf/Catalina/localhost ). Fare riferimento alla documentazione del contenitore di contesto .

Una soluzione alternativa sarebbe quella di creare un servlet che invii un reindirizzamento alla webapp predefinita desiderata e mappare quel servlet a tutti gli URL nella webapp 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"); } } 

Aggiungi la class sopra a
CATALINA_BASE/webapps/ROOT/WEB-INF/classs/com/example/servlet .
E aggiungere il seguente a
CATALINA_BASE/webapps/ROOT/WEB-INF/web.xml :

   Redirect Redirect com.example.servlet.RedirectServlet   Redirect /  

E se lo si desidera, è ansible modificare facilmente RedirectServlet per accettare un param di init che consente di impostare la webapp predefinita senza dover modificare la sorgente.

Non sono sicuro che farlo avrebbe implicazioni negative, ma l’ho provato e sembra funzionare.

la configurazione context.xml non ha funzionato per me. Tomcat 6.0.29 si lamenta del fatto che docBase si trovi all’interno dell’appBase: … Per Tomcat 5 questo ha funzionato davvero.

Quindi una soluzione è mettere l’applicazione nella cartella ROOT.

Un’altra soluzione molto semplice consiste nel mettere un index.jsp a ROOT che reindirizza alla mia applicazione in questo modo: response.sendRedirect (“/ MyApplicationXy”);

I migliori saluti, Jan

Ho un problema quando configurato Tomcat ‘ server.xml e aggiunto elemento di contesto. Semplicemente non vuole usare la mia configurazione: http://www.oreillynet.com/onjava/blog/2006/12/configuration_antipatterns_tom.html

Se sei in un Unix-like a Unix-like :

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

Fatto.

Per me va bene.

Guarderò i miei documenti; c’è un modo per specificare una configurazione per cambiare il percorso dell’applicazione Web root lontano da ROOT (o ROOT.war), ma sembra che sia cambiato tra Tomcat 5 e 6.

Trovato questo:

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

Pertanto, sembra che la modifica del percorso di root (in ROOT.xml) sia ansible, ma un po ‘interrotta: è necessario spostare WAR fuori dalla directory di distribuzione automatica. Ti spiace se ti chiedo perché ribattezzare il tuo file su ROOT.war non è una soluzione praticabile?

Non è una soluzione molto buona, ma un modo è quello di redirect dall’app ROOT a YourWebApp. Per questo è necessario modificare ROOT index.html.

   Redirecting to /YourWebApp     

O

   Redirecting to /YourWebApp      

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

Il modo migliore per cambiare l’applicazione root di tomcat. Testato su Tomcat 7 e 8.

  1. Passare alla directory webapps di tomcat:

    Esempio sulla mia macchina: ~/stack/apache-tomcat/webapps

  2. Rinominare, sostituire o eliminare la cartella ROOT. Il mio consiglio è rinominare o creare una copia per il backup. Esempio rinominare ROOT a RENAMED_ROOT:

    mv ROOT RENAMED_ROOT

  3. Sposta il file war con la tua applicazione nella directory webapps di tomcat (è una directory dove c’era la vecchia cartella ROOT, sulla mia macchina: ~ / stack / apache-tomcat / webapps)

Il file di guerra deve avere un nome ROOT.war . Rinominare la tua aplicazione se è necessaria: yourApplicationName.war -> ROOT.war

  1. Riavvia Tomcat. Dopo il riavvio la tua applicazione sarà una root.

In Tomcat 7 (sotto il server Windows) non ho aggiunto o modificato nulla a nessun file di configurazione. Ho appena ribattezzato la cartella ROOT con qualcos’altro e ho rinominato la mia cartella dell’applicazione su ROOT e ha funzionato correttamente.