2013-01-10 13 views

risposta

7

po approccio dettagliato

Primo metodo:

primo arresto il vostro gatto [dalla directory bin (sh shutdown.sh)] allora si necessario eliminare tutto il contenuto della cartella webapps Tomcat (rm -fr *) quindi rinominare il file WAR in ROOT.war, infine avviare il tomcat [dalla directory bin (sh startup.sh)]

Secondo metodo:

lasciare il vostro file di guerra in CATALINA_BASE/webapps, sotto il suo nome originale - spegnere autodeploy e deployOnStartup nel vostro elemento Host nel file server.xml. definisce esplicitamente tutti i contesti dell'applicazione in server.xml, specificando entrambi il percorso e docBase. Devi fare questo, 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.

Nota:

che questo ultimo metodo implica anche che, al fine di apportare qualsiasi modifica a qualsiasi applicazione, sarà necessario arrestare e riavviare Tomcat.

Terzo Metodo:

Posizionare il file di guerra al di fuori di CATALINA_BASE/webapps (deve essere al di fuori per evitare la doppia distribuzione). - 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 di guerra. L'elemento path non deve essere impostato - è derivato dal nome del file .xml, in questo caso ROOT.xml. Vedere il contenitore del contesto sopra per i dettagli.

+1

Metodo 3: 'ROOT. xml' deve andare in 'CATALINA_BASE/conf/Catalina/localhost' (tecnicamente è' conf// ', ma' Catalina' e 'localhost' sono i valori predefiniti nel' server.xml out-of-the-box ' ') non direttamente in' conf'. –

+0

Ho provato il primo metodo, il più delle volte "http://myapp.mydomain.com" mi dà un errore di richiesta errato, se accedo all'app da IP, funziona perfettamente. Qual è la soluzione per questo. Sto usando Tomcat 6. – n92

2

1) Il suo application server deve essere configurato per avere la vostra applicazione graal come applicazione di ROOT

2) il vostro percorso graal contesto di applicazione dovrebbe essere "/" o app.context =/

+0

qual è il tuo ambiente comunque? – TheWhiteRabbit

+0

Il mio ambiente è di produzione, non funziona, ho creato il file di guerra usando "grails prod war". – n92

+0

Come eseguire il primo "app server deve essere configurato per avere l'applicazione Grails come applicazione ROOT". Ho fatto in modo che il secondo – n92

1

Si può fare Tomcat pubblica una webapp come contesto di root semplicemente nominandolo ROOT.war, ovvero prendi lo myapp-0.1.war generato da Grails e copialo su TOMCAT_DIR/webapps/ROOT.war.

Se si dispone di un'impostazione per grails.serverURL nel vostro Config.groovy sarà necessario sovrascrivere questo per l'ambiente di produzione per garantire che tutti i collegamenti assoluti generati da Grails sono corretti

environments { 
    production { 
    grails.serverURL = 'http://myapp.mydomain.com' 
    } 
} 

Ma in Grails 2 che di solito è al sicuro omettere interamente grails.serverURL e lasciare che l'app deduca il giusto valore in fase di runtime. Ne hai bisogno solo se stai utilizzando un proxy inverso che non passa attraverso l'intestazione Host corretta.

Problemi correlati