Ho questo requisito che la mia webapp deve leggere da un file di proprietà all'esterno della directory webapps di Tomcat, ad esempio da $ CATALINA_HOME/properties/myapp.properties. Ho provato diverse cose ma finora nessuna fortunaCome leggere un file di proprietà all'esterno del contesto webapp in Tomcat
risposta
Esistono diversi approcci.
- Usa una variabile ambientale
- utilizzare un sistema di proprietà
- Imposta come un contesto di applicazione Param in Web.xml
Heres un campione, che mostra Option 1 and Option 2
try {
//Use Any Environmental Variable , here i have used CATALINA_HOME
String propertyHome = System.getenv("CATALINA_HOME");
if(null == propertyHome){
//This is a system property that is passed
// using the -D option in the Tomcat startup script
propertyHome = System.getProperty("PROPERTY_HOME");
}
String filePath= propertyHome+"/properties/myapp.properties";
Properties property = new Properties();
property.load(SystemTest.class.getClassLoader().getResourceAsStream(filePath));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Grazie! Ho usato il tuo secondo approccio con System Property "catalina.home" Questo è esattamente ciò di cui avevo bisogno! – user2152898
Nel nostro progetto che configiamo il percorso del file come argomenti vm che verranno memorizzati nelle proprietà tomcat e nel codice, utilizzare System.getProperty(the parameter you config)
per ottenere il percorso e leggere il file delle proprietà , quindi ottieni i risultati.
Sì, ma nel caso Tomcat e se ho bisogno di leggere il file da qualche parte in classe .... implementi ServletContextListener {} Ho ottenuto il percorso relativo WAR! È possibile qualcosa usando, per esempio, SPRING per ottenere un percorso al di fuori di WAR? file: d: /my/path/toFile.log – AnNik
Preferisco l'opzione per configurare tramite descrittori di contesto Tomcat.
Questi XML-documenti sono collocati nella cartella tomcat/conf/Catalina/<host>/*.xml
Questo si riferisce a: Externalizing Tomcat webapp config from .war file
Abbiamo messo il percorso della directory webapp-config come segue:
/var/lib/tomcat7/webapps/webapp/WEB-INF/classes/system-properties-location.properties
dove webapp = nome del file webapp
Ecco il contenuto del file di system-properties-location.properties:
posizione =/var/lib/tomcat7/webapp-configs/webapp
Punta a una posizione esterna da cui estrarre le proprietà specifiche dell'ambiente. In questo modo possiamo schierare la stessa guerra in dev, staging e prod senza modificare il contenuto della guerra.
- 1. Tomcat gestione del contesto
- 2. Come faccio a leggere il file manifest per una webapp in esecuzione in apache tomcat?
- 3. Directory webapp Tomcat in windows
- 4. Come posso leggere un file di risorse in un file di guerra inesploso distribuito in Tomcat?
- 5. Come distribuire webapp esterna in tomcat?
- 6. come leggere un file da una webapp ascensore
- 7. Leggere un file in una proprietà Maven
- 8. Tomcat Webapp sulla porta 80
- 9. Genera file di guerra dalla cartella webapp tomcat
- 10. Come leggere le proprietà del file personalizzato in C#
- 11. Come ottenere una pagina di benvenuto da Tomcat root, piuttosto che contesto webapp?
- 12. Impostazioni memoria Tomcat per webapp
- 13. Come leggere un file di proprietà esterno in Maven
- 14. Tomcat - avvio di webapp in un ordine specifico
- 15. Distribuzione remota di webapp Tomcat da Eclipse
- 16. Come posso leggere i valori del parametro di contesto/web.xml in un file java non-servlet?
- 17. tomcat restart webapp dalla riga di comando
- 18. Come si associa un sottodominio a una webapp su Tomcat 6 (inclusa la webapp di root)?
- 19. Modifica proprietà java.util.logging.SimpleFormatter in Tomcat
- 20. Quale DataSource per l'applicazione utilizzata sia in stand-alone e contesto webapp (Java 7, Tomcat 7)?
- 21. Come leggere un file di proprietà in javascript dalla directory del progetto?
- 22. Contesto mapping Tomcat tramite server.xml
- 23. Aggiunta di una directory a tomcat classpath e lettura del file di proprietà in primavera
- 24. fa red5 leggere tomcat-users.xml
- 25. Come eliminare correttamente i thread locali di proprietà di una webapp in esecuzione su tomcat con istruzioni per lo spegnimento
- 26. Leggere il certificato in entrata in Tomcat
- 27. getResourceAsStream non carica risorse in webapp
- 28. Leggere le proprietà del file usando le annotazioni Spring
- 29. come leggere il file delle proprietà in scala
- 30. impedire Tomcat 7 di eliminare il mio file di contesto personalizzato su ogni singola sovrascrittura/annullare la distribuzione del mio webapp
Un file è un file; dargli un percorso e leggerlo. –
Sì, questo è facile da fare. Non è privo di senso, ci sono dei motivi. – Rob
Penso che il file sarà condiviso da più progetti, pubblico una risposta, spero che possa darti un suggerimento. – OQJF