Sou iniciante em programação Web em JAVA e preciso criar um arquivo de configuração para configurar o sistema na qual estou desenvolvendo.
As configurações são bem basicas como:
URL de BD
user e senha de BD
configurações de servidores de e-mail
entre outras …
O meu problema é o seguinte, estou atualmente guardando esse arquivo XML de configuração no HOME do usuario.
Mas acredito que uma solução mais ‘adequada’ seria guardar o arquivo na pasta de deploy do Sistema.
Se fosse um sistema em java comum bastaria fazer um “new File(”./conf.xml")" mas o diretorio corrente da execução é o CATALINA_HOME/bin.
Como posso fazer para buscar a pasta de Deploy do sistema tipo um getDeployDir() ?
Na classe ServletContext tem um metodo chamado getRealPath(), você passa um path relativo e ele te retorna o path real do sistema operacional, e eu recomendo que esse arquivo fique em WEB-INF, para que nao possa ser acessado dos clientes… se não, todo mundo vai ver suas configurações.
ex.:
Dentro de um serlvet:
[code]String pasta = getServletContext().getRealPath("/WEB-INF");
File arq = new File(pasta+File.separator+"conf.xml");[/code]
Tche tentei fazer dessa forma que vc sugeriu, então fiz o seguinte:
Coloquei essa chamada de getServletContext() no construtor dos servlets
mas dai deu exception nullPointer quando chamo getServletContext().getRealPath("/WEB-INF");
Então tentei colocar os comando no metodo de processamento de requisição doGet(),
funcionou mas toda a vez que ocorrer uma requisição ele setará o arquivo de configuração.
Claro que tem como fazer umas “gambiarras” para ele nao fazer isso mas o codigo ficará um lixo.
Teria um exemplo mais aprofundado para me sugerir.