Home

Mi hanno chiesto:

Se definisco una variabile d’ambiente in Tomcat nel file server.xml, poi come la recupero tramite JNDI?

Risposta:

Editare il file server.xml (file di configurazione di tomcat che si trova nella cartella /conf di tomcat)  ed aggiungere nella sezione GlobalNamingResources:

<GlobalNamingResources>
    <Environment  name="ENV_GLOBAL_TEST"  type="java.lang.String" value="Andare a Coccomaro e  ritorno…"/>
</GlobalNamingResources>

Sempre in server.xml: portarsi in fondo al file dove inizia la sezione host. Lì ci sono i tag Context (1 per ogni web-application); aggiungere alla web-application desiderata il riferimento alla variabile globale:

<Context  docBase="webbo" path="/webbo" reloadable="true" source="org.eclipse.jst.j2ee.server:webbo">
    <ResourceLink global="jdbc/globalmysqlds"  name="jdbc/mysqlds" type="javax.sql.DataSource"/>
    <ResourceLink global="ENV_GLOBAL_TEST"  name="VARIABILE_SERVER_1"  type="java.lang.String"/>
</Context>

In questa sezione abbiamo associato alla web application la variabile globale ENV_GLOBAL_TEST e che la variabile sarà vista come VARIABILE_SERVER_1.

Passiamo ora alla web application. In fondo al file web.xml si deve aggiungere un riferimento alla variabile collegata indicando anche il tipo della variabile (in questo caso una Stringa):

<resource-env-ref>
    <resource-env-ref-name>VARIABILE_SERVER_1</resource-env-ref-name>
    <resource-env-ref-type>java.lang.String</resource-env-ref-type>
</resource-env-ref>

In java o jsp la variabile si recupera così:

try {

javax.naming.Context jctx = new javax.naming.InitialContext();

javax.naming.Context envCtx = (javax.naming.Context) jctx.lookup(“java:comp/env”);

  String config_path = (String)envCtx.lookup("VARIABILE_SERVER_1");
  …
} catch  (Exception e) {
  log.error(e.toString());
}
Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...