Java – Leer un archivo dentro de un war

agosto 20, 2009

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!

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 )

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 )

Google+ photo

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

Conectando a %s

A %d blogueros les gusta esto: