JSP viene eseguito nel contenitore servlet, quindi la directory di lavoro corrente viene definita dal contenitore. In genere è la directory in cui è installato il contenitore o la sua directory bin
. In ogni caso non è il luogo in cui si desidera memorizzare il proprio file delle proprietà personalizzate.
Ci sono 2 approcci tipici per fare ciò che ti serve.
Il primo approccio è valido se il file fa parte dell'applicazione e non lo si modifica mai sulla distribuzione. In questo caso leggerlo da risorse:
props.load(getClass().getResourceAsStream())
o meglio ancora
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream())
Il secondo approccio è buono se si desidera modificare il file le vostre offerte su ambiente di distribuzione. In questo caso, mettilo da qualche parte nel file system fuori dal tuo contenitore. Ad esempio /opt/mycompany/conf/myproperties.properties
su Linux o in qualsiasi altro luogo che ti piace. Ora dovresti usare il percorso assoluto quando crei FileInputStream
.
Per rendere il sistema più configurabile, non è necessario scrivere il percorso del file di configurazione all'interno del codice. Un approccio migliore consiste nel passarlo all'applicazione utilizzando le proprietà di sistema, ad es. aggiungere parametro come -Dmycompany.conf=/opt/mycompany/myprops.properties
quando si esegue il server delle applicazioni. Quando si vuole leggere il file procedere come segue:
new FileInputStream(System.getProperties("mycompany.conf"))
Ora configurazione del sistema può controllato in modo indipendente da deployer.
Qual è la sua struttura di app?Dove si trova jsp e il file delle proprietà ?? –
Il file si trova nella cartella '/ src' del tuo progetto? –