Come includere i valori dal file .properties in web.xml?

Ho bisogno di includere alcuni valori da un file.properties nel WEB-INF/web.xml qualcosa del genere:

 uploadDirectory myFile.properties['keyForTheValue'] 

Attualmente sto lavorando con questo:

  • JBoss
  • JEE5

Puoi aggiungere questa class, che aggiunge tutte le proprietà dal tuo file a JVM. E aggiungi questa class come context-listener a web.xml

 public class InitVariables implements ServletContextListener { @Override public void contextDestroyed(final ServletContextEvent event) { } @Override public void contextInitialized(final ServletContextEvent event) { final String props = "/file.properties"; final Properties propsFromFile = new Properties(); try { propsFromFile.load(getClass().getResourceAsStream(props)); } catch (final IOException e) { // can't get resource } for (String prop : propsFromFile.stringPropertyNames()) { if (System.getProperty(prop) == null) { System.setProperty(prop, propsFromFile.getProperty(prop)); } } } } 

in web.xml

    com.company.InitVariables   

ora puoi ottenere tutte le proprietà nel tuo progetto usando

 System.getProperty(...) 

o in web.xml

 param-name ${param-name} 

Una parola di caucanvas riguardo alla soluzione accettata sopra.

Lo stavo sperimentando su jboss 5 oggi: il metodo contextInitialized() non viene richiamato fino a quando web.xml viene caricato in modo che la modifica alle proprietà del sistema non abbia effetto nel tempo. Stranamente questo significa che se si esegue nuovamente la distribuzione della webapp (senza riavviare jboss) la proprietà sopravviverà dall’ultima volta che è stata distribuita, quindi potrebbe sembrare che funzioni.

La soluzione che useremo invece è passare i parametri a jboss tramite la riga di comando java, ad esempio -Dparameter1=value1 -Dparameter2=value2 .