Servlet + Arquivo de Propriedades

11 respostas
J

Dae galera... eu estou tendo problemas para localizar o meu arquivo de propriedades.. ele está dizendo que o arquivo não pode ser encontrado.. a estrutura do meu projeto é assim:

Projeto
 --database
     --data_base.properties
 --src
 --web
     --WEB-INF

Eu recupero e leio o arquivo assim:

Properties properties = new Properties();
            FileInputStream in = new FileInputStream("database" + System.getProperty("file.separator") + "data_base.properties");
            properties.load( in );
            in.close();
            
            strDriver = properties.getProperty("data_base.driver");
            strLogin = properties.getProperty("data_base.login");
            strSenha = properties.getProperty("data_base.senha");
            strDataBase = properties.getProperty("data_base.data_base");

Quando acesso esse arquivo chamando ela pelo minha classe Main que criei pra testes, ele funciona.., agora se chama o mesmo do meu Servlet, ele dá a mensagem de que o arquivo não pode ser encontrado...
Alguém sabe como eu faço??
Abraço!!

11 Respostas

J

Galera… se eu passar o caminho completo desde a raiz… tipo…
C:/…, dae ele funciona… !
Deve ter um jeito de não ter que passar o caminho completo…

B

Ola,

Vc pode usar o ServletContext, mas para isto garanta que o arquivo estará dentro do contexto do seu webapp, vamos supor que a estrutura que ficará é assim: my_webapp --WEB-INF --resources --my_file.properties .. .. .. Considerando que é a estrutura que será montada no deploy, então vc consegue acessar assim, de dentro de um servlet:

this.getServletContext().getResource("/WEB-INF/resources/my_file.properties");

J

Cara… mas não consegui usar dessa meneira… isso vai ser usado em conjunto com o Properties??
Se não, como eu consigo varrer esse arquivo usando dessa forma!!
Abraço!!

B

Ola,

tente pegar o inputStream então:

InputStream input = this.getServletContext().getResourceAsStream("/WEB-INF/resources/my_file.properties");

J

Cara… valeu…mas assim eu tinha tentando e ele retorna null…
Vou dar uma pesquisava pra ver o que fazer…
Valeu!!

J

Bah… galera… não consegui encontrar nada!!
Será que alguem ai tem alguma outra idéia??

B

Ola,

Vc poderia postar como está sua estrutura da aplicação após o deploy, pois esta estrutura que vc postou deve ser a montada por uma IDE…

J

Acho que seria isso…

Projeto -- build -- web -- META-INF -- WEB-INF -- classes -- br... -- database -- data_base.properties

B

Ola,

É isto que está confuso, vc tem que ver o arquivo .war que é gerado, qual IDE que vc tá usando???

J

Projeto --include(arquivos js e css) --META-INF --WEB-INF --classes --br... --database --data_base.properties --lib --web.xml --index.jsp e demais jsp's
Achei o .war. … heheh… e é NetBeans 5.5!

B

Ola,

Bom, estranho esta estrutura gerada, pois o diretorio “classes” que julgo ter os .class dos seus servlets, classes java, etc não está dentro de WEB-INF, mas deixa pra lá, a questão é, vc pode recuperar o seu .properties através do context, assim:

InputStream input = this.getServletContext().getResourceAsStream("/database/data_base.properties");

Criado 7 de agosto de 2007
Ultima resposta 8 de ago. de 2007
Respostas 11
Participantes 2