Erro carregando arquivo .properties no Tomcat

Olá

estou tentando carregar um arquivo .properties (em um servlet) que está rodando no tomcat, mas está dando erro.

Fiz o mesmo método em uma aplicação standalone, deixando o arquivo .properties na raiz da aplicação e funcionou OK, agora no tomcat não está.
O Arquivo está dentro de WEB-INF/lib, mas recebo uma Exceção que o arquivo não foi encontrado.

o código está assim

        Properties properties = new Properties();
        File file = new File("system.properties");
        try {
            properties.load(new FileInputStream(file));
            System.out.println(properties.getProperty("myConfig.userName"));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("--- Erro Carregando Arquivo de Configuração ---");
            e.printStackTrace();
        }

Diferente de aplicações StandAlone onde é só colocar o arquivo properties na raiz do projeto e carregá-lo, em aplicações WEB, você deve informar onde está esse arquivo.

Primeiramente eu aconselho por arquivos de configuração desse tipo abaixo do WEB-INF/classes (questão de segurança).
Segundo, você deve usar o getServletContext().getRealPath() para capturar o path da sua aplicação, consequentemente você pode capturar o path do arquivo .properties e depois carregá-lo.

Qualquer coisa estamos ae

Ou senão tente isso:

[code]ServletContext myContext = session().getServletContext();

InputStream is = myContext.getResourceAsStream( “/WEB-INF/lib/meuArquivo.properties” );

Properties properties = new Properties();
try {
properties.load( is );
System.out.println(properties.getProperty(“myConfig.userName”));
} catch (IOException e) {
System.out.println("— Erro Carregando Arquivo de Configuração —");
e.printStackTrace();
}[/code]

Dica:
Adicione no seu arquivo web.xml um parametro no contexto da sua aplicação apontando para seu arquivo .properties, assim:

<context-param> <param-name>gmconfigurator</param-name> <param-value>/WEB-INF/lib/meuArquivo.properties</param-value> </context-param>

Depois em sua aplicação você pega esse parametro como String e utilize em myContext.getResourceAsStream(String). Dessa forma você não precisa recompilar sua aplicação, caso você altere seu arquivo .properties de diretório, apenas reinicie sua aplicação.