Tengo un servlet implementado como una guerra en JBoss 4.0.2. Tengo un archivo de propiedades para la aplicación implementada. ¿Dónde debería poner este archivo? Debajo del directorio conf en la carpeta jboss server \ default \ conf? ¿Cómo puedo cargar ese archivo de propiedades de manera portátil?Cargar archivo de propiedades en un servlet java desplegado en JBoss como guerra
Respuesta
que cargue el archivo de propiedades en un portátil forma , la mejor manera sería ponerlo en la ruta de clase de la aplicación web (ya sea en un frasco bajo WEB-INF/lib/
o bajo WEB-INF/classes/
o en la ruta de clase del servidor de aplicación, si usted quiere para poder editar ese archivo sin volver a empacar su aplicación web) y para usar Class#getResourceAsStream(String)
.
El código siguiente obtiene un InputStream
para un archivo de propiedades que reside en el mismo paquete que el servlet en el que se ejecuta el código:
InputStream inStream = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("myfile.properties");
Entonces, load(InputStream)
en un (manejo de excepciones saltar) Properties
objeto :
Properties props = new Properties();
props.load(inStream);
El mejor lugar para poner es bajo el propio doc-root las aplicaciones web, así como "./WEB-INF/myapp.properties", es decir, en relación a que el contenedor de servlets desempaquetado el archivo o .war
.ear
. Puede proporcionar el archivo de propiedades directamente en el .war
.
El ServletContext
tiene un método getRealPath(String path)
que devuelve la ruta real en el sistema de archivos. Usando la ruta real, puede cargarla en una colección Properties
.
actualización El código en su comentario trata de las operaciones de búsqueda camino real para "/", se debe pedir la ruta relativa a sus propiedades de archivo, como en:
String propertiesFilePath = getServletContext().getRealPath("WEB-INF/application.properties");
Properties props = properties.load(new FileInputStream(propertiesFilePath));
Así que probé lo siguiente: String propertiesFilePath = getServletContext(). GetRealPath ("/") + File.separator + "WEB-INF" + File.separator + "application.properties"; properties.load (new FileInputStream (propertiesFilePath)); Obtengo una excepción FileNotFoundException. No veo lo que hice mal. – Carlosfocker
Si el archivo de propiedades se se desplegará junto con la aplicación para que forme parte de su árbol fuente. Esto dará como resultado que el archivo de propiedades esté en la carpeta WEB-INF/classes.
Esto se puede leer usando
Properties properties = loadProperties("PropertyFileName.properties", this.getClass());
...
public static Properties loadProperties(String resourceName, Class cl) {
Properties properties = new Properties();
ClassLoader loader = cl.getClassLoader();
try {
InputStream in = loader.getResourceAsStream(resourceName);
if (in != null) {
properties.load(in);
}
} catch (IOException e) {
e.printStackTrace();
}
return properties;
}
Sólo controlar la ServletContext y luego
InputStream stream = getServletContext().getResourceAsStream("/WEB-INF/log4j.properties");
Properties props = new Properties();
props.load(stream);
Esto siempre va a funcionar, independientemente de si se implementa una guerra o la guerra explotó.
- 1. ¿Cómo puedo hacer que JBoss explote un archivo WAR desplegado?
- 2. Java: Acceso al archivo de propiedades dentro de una guerra
- 3. ¿Dónde está el archivo servlet jar en JBoss 5.0.1?
- 4. Cargar archivo de propiedades en JAR?
- 5. ¿Cómo cargar el archivo de propiedades en Google App Engine?
- 6. archivo de propiedades java como enum
- 7. Establecer archivo de propiedades en JBoss AS 7
- 8. Ejecutables en un archivo de guerra
- 9. servicio web como un archivo JAR o GUERRA dentro de otra GUERRA?
- 10. Cargar un archivo jsp desde un servlet (App Engine)
- 11. Servlet Java NIO en el archivo
- 12. Despliegue de una guerra fuera de un directorio de implementación en jboss
- 13. Tomcat no autodeploying archivo de la guerra
- 14. JBoss 7: cómo cargar dinámicamente jar
- 15. Parámetros de lectura JSP/servlet del archivo de propiedades?
- 16. Archivo de propiedades de Java en Eclipse
- 17. Ruta del archivo de propiedades en java
- 18. ¿Cómo se configura un contenedor de bean Spring para cargar un archivo de propiedades Java?
- 19. Despliegue del archivo de guerra en Tomcat
- 20. Embalaje de archivos Javascript en una guerra?
- 21. Cómo cargar el archivo de propiedades del sistema en Spring?
- 22. ExecutorService en Java Servlet
- 23. Como llegar SessionContext en JBOSS
- 24. App-Engine (Java) Archivo de datos Cargar
- 25. Despliegue de guerra en Jboss 7.0.1 a través de la línea de comandos
- 26. Especificaciones del servlet para Jboss 4.2.3
- 27. JBoss 5.1.0 GA servlet API versión
- 28. Java: posible salto de línea en un archivo de propiedades?
- 29. Procesamiento asíncrono en Java desde un servlet
- 30. file de servlet cargar la codificación del nombre de archivo
El proyecto que requería esto se canceló, así que nunca hice un seguimiento. – Carlosfocker