Domanda

Scenario:

Il file foo.war contiene un valore predefinito del parametro init fooParam=1.

Questo è definito in foo.war!WEB_INF/web.xml che contiene:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app 
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

    <context-param>
      <param-name>fooParam</param-name>
      <param-value>1</param-value>
      <description>
        my parameter "fooParam"
      </description>
    </context-param>

    ...

OK, ora voglio poterlo sovrascrivere in un file di configurazione nella directory Tomcat {$CATALINA_HOME}/conf/.Dove/come posso farlo???

È stato utile?

Soluzione

Secondo la documentazione del Contesto elemento:

Parametri di contesto

È possibile configurare valori denominati che saranno resi visibili all'applicazione Web come parametri di inizializzazione del contesto servlet mediante nidificazione <Parameter> elementi all'interno di questo elemento.Ad esempio, è possibile creare un parametro di inizializzazione come questo:

<Context ...>
  ...
  <Parameter name="companyName" value="My Company, Incorporated"
         override="false"/>
  ...
</Context>

Ciò equivale all'inclusione del seguente elemento nel descrittore di distribuzione dell'applicazione Web (/WEB-INF/web.xml):

<context-param>
  <param-name>companyName</param-name>
  <param-value>My Company, Incorporated</param-value>
</context-param>

ma non richiede la modifica del descrittore di distribuzione per personalizzare questo valore.

Gli attributi validi per a <Parameter> elemento sono i seguenti:

...

Riguardo a override attributo di a <Parameter>, la documentazione dice:

Impostalo su false se non vuoi un <context-param> per lo stesso nome di parametro, trovato nel descrittore di distribuzione dell'applicazione Web, per sovrascrivere il valore specificato qui.Per impostazione predefinita, sono consentite le sostituzioni.

Impostarlo su false dovrebbe risolvere il problema.Questa era la parte del "come".


Per la parte "dove", leggere fare riferimento all'introduzione di Il contenitore del contesto:

Per Tomcat 6, a differenza di Tomcat 4.x, NON è consigliabile posizionare <Context> elementi direttamente nel server.xml file. Questo perché rende la modifica della configurazione del contesto più invasiva rispetto al file main conf/server.xml il file non può essere ricaricato senza riavviare Tomcat.

Contesto gli elementi possono essere definiti esplicitamente:

  • Nel $CATALINA_BASE/conf/context.xml file:le informazioni sull'elemento Contesto verranno caricate da tutte le webapp.
  • Nel $CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default file:le informazioni sull'elemento Context verranno caricate da tutte le webapp di quell'host.
  • Nei singoli file (con estensione ".xml") nel formato $CATALINA_BASE/conf/[enginename]/[hostname]/ directory.Il nome del file (meno l'estensione .xml) verrà utilizzato come percorso di contesto.I percorsi di contesto multilivello possono essere definiti utilizzando #, ad es. foo#bar.xml per un percorso contestuale di /foo/bar.L'applicazione Web predefinita può essere definita utilizzando un file denominato ROOT.xml.
  • Solo se non esiste un file di contesto per l'applicazione nel file $CATALINA_BASE/conf/[enginename]/[hostname]/, in un file individuale all'indirizzo /META-INF/context.xml all'interno dei file dell'applicazione.Se l'applicazione Web è confezionata come WAR, allora /META-INF/context.xml verrà copiato in $CATALINA_BASE/conf/[enginename]/[hostname]/ e rinominato per corrispondere al percorso di contesto dell'applicazione.Una volta che questo file esiste, non verrà sostituito se si tratta di un nuovo WAR con uno più recente /META-INF/context.xml viene inserito nell'appBase dell'host.
  • All'interno di un elemento Host nel main conf/server.xml.

Con l'eccezione di server.xml, file che definiscono Contesto gli elementi possono definirne solo uno Contesto elemento.

Altri suggerimenti

Argh! Pensavo di averlo chiesto prima. A volte è davvero difficile cercare su questo sito web.

dove / come impostare le risorse di configurazione per Tomcat file .war

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top