Java – Leer un archivo dentro de un war

En Jboss para hacer un deploy simplemente copias tu archivo war en una carpeta del servidor. Él creará virtualmente un sistema de archivos y podrás visualizar tu aplicación.
Pero, que pasa si necesitas leer un archivo (XML, properties, etc) desde tu aplicación. Si la ejecutas desde Eclipse tal vez puedas tener acceso a él, pero al hacer el deploy al servidor te llevarás una triste sorpresa 😥
Para poder leer el archivo en el war lo primero que tienes que hacer es copiarlo a la carpeta WEB-INF/classes y luego cargarlo mediante un Class Loader de la siguiente forma.
Si es un archivo de configuración (.properties), cargalo así

Properties properties=new Properties();
properties.load(Thread.currentThread().getContextClassLoader().getResource("app.properties").openStream());

Si es otro tipo de archivo, por ejemplo un archivo de texto

InputStream file=Thread.currentThread().getContextClassLoader().getResourceAsStream("test.txt");

En este foro se explica muy bien lo de los Class Loaders y en esta página encontré como cargar cualquier tipo de archivo.

Happy coding, byte!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s