Re:Arquivo .properties em aplicações Web

3 respostas
T

Não use FileInputStream, e sim Thread.currentThread().getContextClassloader().getResourceAsStream() (ou coisa parecida). Neste fórum isso foi respondido N vezes.

3 Respostas

L

A melhor maneira de ser ler um resource .properties é essa:

//nome do arquivo sem extensão...
ResourceBundle rb = ResourceBundle.getBundle("nomedoarquivo");

segue a minha classe como exemplo…

package br.com.suapp.util;

import java.util.ResourceBundle;

/**
 * Classe que recupera um par de chave / valor do arquivo de propriedades (gerprod.properties)
 */
public class Recurso  {
	
	private static Recurso recursoInstancia = new Recurso();
	
	private static final ResourceBundle RB = ResourceBundle.getBundle("br.com.suapp.util.nomedoarquivo"); 
	
	private Recurso(){			
	}
	
	/**
	 * Obtém uma instância de Recurso (Singleton)
	 * @return Retorna uma instância da classe Recurso
 	 * Por exemplo:
	 * <code>
	 *    private static final Recurso recurso = Recurso.getInstance();
	 *    recurso.getPropriedade("DATA_SOURCE_REFERENCE_MEUDB");
	 * </code>
	 */		
	public static Recurso getInstance(){
		
		return recursoInstancia;		
	}	
	
	/**
	 * Recupera o valor armazenado correspondente a chave informada
	 * @param chave que deseja recuperar o valor
	 * @return Retorna uma string com o valor encontrado no arquivo pad.properties 
	 */		
	public String getPropriedade(String chave) {	

		return RB.getString(chave);		
	}	
}
Victor_Yuji_Maehira

Boa tarde!
Estou tentando ler um .properties em uma aplicação web. Segue trecho do código:

props = new Properties(); try { file = new FileInputStream("arq.properties"); props.load(file); } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); }

Já tentei colocar o .properties em diversos lugares como em WEB-INF/classes/ mas mesmo assim continuo recebendo java.io.FileNotFoundException. Alguém tem alguma dica de como lidar com properties em aplicação web sem precisar colocar todo o caminho do arquivo?!
Valeu!

Victor_Yuji_Maehira

Opa! Desculpa, eu havia visto outras formas de fazê-lo no fórum! Esqueci de dizer que estou restrito a usar JDK 1.3!
Utilizando ResourceBundle funcionou! Valeu!

Criado 4 de junho de 2007
Ultima resposta 4 de jun. de 2007
Respostas 3
Participantes 3