2012-03-06 10 views
5

Tomcat documentazione (http://tomcat.apache.org/tomcat-6.0-doc/config/context.html)aggiornamenti Tomcat context.xml ma non dovrebbero

Solo se un file di contesto non esiste per l'applicazione nel $ CATALINA_BASE/conf/[nomemile]/[nomehost] /, in un singolo file su /META-INF/context.xml all'interno dei file dell'applicazione. Se l'applicazione web è impacchettata come WAR, /META-INF/context.xml sarà copiata in $ CATALINA_BASE/conf/[nomemile]/[nomehost]/e rinominata in corrisponde al percorso di contesto dell'applicazione. Una volta che questo file esiste, sarà sostituito da se una nuova WAR con un nuovo /META-INF/context.xml è inserito nell'appbase dell'host.

Il testo in grassetto è chiaro. Ma notifico come non vero. (Ho bisogno esattamente questo comportamento)

Ecco fasi:

  1. aaa.war con context.xml incluso nel META-INF
  2. copia webapps. distribuisce tomcat. File conf\Catalina\localhost\aaa.xml OK
  3. cambiamento aaa.war modificando META-INF/context.xml
  4. copia webapps
  5. File conf\Catalina\localhost\aaa.xml è cambiato !!!

Cosa c'è che non va? È un bug o una funzionalità nascosta?

Background - il problema che voglio risolvere:

configurazione di generazione indipendenti e l'installazione. Mi pianta per spedire un file di guerra. Il client configura il proprio Tomcat utilizzando le proprie impostazioni. quando spedisco una nuova versione, mi limito a consegnare la guerra senza configurazione e, una volta implementata, userà la configurazione specifica del client.

Dalla documentazione il posto migliore è il context.xml Ma se viene sovrascritto ogni volta non ha senso usare affatto. (Perché dovrei usare JNDI ea queste cose se il nuovo risultato finale ha a creato Cambiare qualcosa in accumulo di tempo non è un grande vantaggio di configurazione?.)

Ambiente: finestre, Tomcat 6.0.33

+0

Problema simile: http://stackoverflow.com/questions/4158468/tomcat-context-management – takacsot

+0

Risposta già presentata in questo sito: http://stackoverflow.com/questions/7142365/how-to-provide-a -context configurazione-per-un-web-application-under-tomcat – takacsot

risposta

6

ho incontrare lo stesso problema e la documentazione è almeno inadeguata, se non direttamente fuorviante.

Il problema è che se si copia una nuova versione di un file WAR già distribuito nella directory webapps, Tomcat non ridistribuirà l'applicazione esistente ma annullerà la distribuzione della vecchia applicazione e quindi distribuirà la nuova applicazione. La differenza potrebbe sembrare insignificante, ma il problema è che durante l'annullamento della distribuzione della vecchia applicazione, vengono eliminati anche tutti i file di contesto in conf/Catalina/localhost. Quindi, il nuovo file di contesto dal file WAR corrente verrà copiato in conf/Catalina/localhost durante la distribuzione della nuova applicazione.

L'unica soluzione possibile trovata non è quella di distribuire la nuova applicazione come file WAR, ma per sostituire o sovrascrivere la directory espansa, ad es. non copiare aaa.war in webapps/ma decomprimere aaa.war direttamente in webapps/aaa /.

Problemi correlati