Fin dal primo approccio a jboss mi sono imbattuto nel problema dei file di properties utilizzati dalle mie applicazioni java. Al contrario di quanto accade su tomcat, il deploy dei war non è di facile accesso e quindi modificare i file di properties risulta essere poco agevole. In contesti dove la stessa applicazione deve essere distribuita su più sistemi con diversi riferimenti questo inconveniente fa sicuramente sentire il suo peso.
Con l'ultimo sviluppo realizzato ho deciso di impegnarmi per aggirare l'ostacolo. Dopo alcune ricerche è saltata fuori la funzione
System.getProperty("jboss.server.config.dir")
che restituisce il path a <JBOSS_HOME>/standalone/configuration (per il deploy sotto jboss 7). Concatenando questo path al nome del file di properties ho così la possibilità di posizionare i file in una directory dove siano facilmente accessibili.
Al momento ho potuto verificare questa procedura solo per la modalità standalone di jboss.
Visualizzazione post con etichetta Java. Mostra tutti i post
Visualizzazione post con etichetta Java. Mostra tutti i post
giovedì 3 gennaio 2013
giovedì 10 novembre 2011
Caricamento file di properties in Java
Visto che perdo sempre una marea di tempo a cercare su Internet il modo per recuperare i file di properties all'interno delle WebApps, ho deciso di scrivere qui il codice che fin'ora ha dato il risultato migliore.
Fin'ora nelle mie webapp mi sono trovato a dover caricare file di properties all'interno di bean o Servlet.
Caricamento all'interno di un bean
Per caricare il file di properties all'interno dei bean (ma credo che per estensione il meccanismo funzioni benissimo anche all'interno di normalissime classi) il codice è il seguente:
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("file.properties");
Properties props = new Properties();
props.load(inputStream);
Per questo caso il file di properties deve essere posizionato alla base del package in cui il bean risiede.
Caricamento all'interno di una servlet
Per caricare file di properties all'interno di una servlet viene sfruttato il ServletContext tramite questo codice:
Properties props = new Properties();
InputStream is = getServletContext().getResourceAsStream("/WEB-INF/classes/file.properties");
props.load(is);
In questo esempio il file di properties è posizionato in fase di deploy sotto la directory WEB-INF/classes della mia webapp.
Iscriviti a:
Post (Atom)