Non so quale versione di Tomcat voi utilizzando, ma in Tomcat 7 nel file di catalina.sh è possibile specificare CATALINA_OPTS variabili e questa variabile passerà alla JVM.
Ma forse impostare la variabile di ambiente non è il modo migliore per raggiungere il tuo obiettivo. Forse migliore sarà la creazione di file separato "app.properties", e includendolo nel applicationContext in questo modo:
<context:property-placeholder location="classpath*:app.properties" />
E soluzione per catalina.sh
# CATALINA_OPTS (Optional) Java runtime options used when the "start",
# "run" or "debug" command is executed.
# Include here and not in JAVA_OPTS all options, that should
# only be used by Tomcat itself, not by the stop process,
# the version command etc.
# Examples are heap size, GC logging, JMX ports etc.
esempio:
CATALINA_OPTS = "-Dfolder = Dev"
EDIT:
per le finestre che dovrebbe essere qualcosa di simile a set CATALINA_OPTS="-Dfolder=Dev"
EDIT:
Nella configurazione primavera è possibile utilizzare proprietà di sistema, proprio come $ {PropertyName}, e può anche includere il file con la definizione di proprietà, con context:property-placeholder
, e tutte le proprietà definite in quel file diventano disponibili anche in configurazione.
Ad esempio, si dispone delle proprietà del set di base: config.properties e set di file con le impostazioni di connessione db (DEV.properties, UAT.properties, PROD.properties). Quindi, come puoi includere proprietà diverse per diversi ambienti? Esso può essere fatto che molti modi, ad esempio, impostare le proprietà del sistema in catalina.bat
set CATALINA_OPTS="-Dbuild=DEV"
e in applicationConfig.xml
<context:property-placeholder location="classpath*:${build}.properties, classpath*:config.properties" />
Oppure si può creare configurazione di generazione diversa e includere nella guerra finale solo una proprietà (DEV, UAT, PROD) per ogni configurazione di build. In applicationConfig impostare qualcosa di simile:
<context:property-placeholder location="classpath*:*.properties" />
Penso che dovresti provare a usare i parametri [ServletContext] (http://docs.oracle.com/javaee/5/api/javax/servlet/ServletContext.html), poiché è un progetto web. –
Penso che questo non sia quello di cui ho bisogno. Devo impostare il valore su apache per WAR, non in sviluppo. Inoltre ho bisogno di cambiare il valore di volta in volta per l'ambiente Develop, Test e Demo. Grazie comunque –
Ecco perché esiste il file web.xml. È un descrittore di implementazione, deliberatamente separato dal codice. – EJP