Caminho absoluto da Aplicação no Tomcat

4 respostas
I

Olá pessoal. Tenho notado que dependendo da versão do Windows e a forma como o Tomcat é instalado (como serviço do Win por exemplo), o caminho absoluto da aplicação pode apontar para:

  1. c:\windows\system32\config (quando como serviço no XP por exemplo)
  2. c:\Arquivos de programas\Apache Software Foundation\Tomcat 5.0

Estou colocando isto pela seguinte situação. Tenho dentro da aplicação uma interface que possui um caminho relativo com as configurações de acesso a base de dados. Ex.:

public interface DataBaseInfo {

public static final String PATH = app.properties;

}

O problema acontence justamente aí. Dependendo do cliente, ou seja, SO e como o Tomcat foi instalado, vou ter diferentes possíveis locais para jogar este arquivo de propriedades. Penso que o mais simples no meu caso seria este arquivo estar ou dentro do diretório conf do tomcat (conf/app.properties - e neste caso o caminho da aplicação deveria ser o 2.) ou no raíz da minha aplicação web mesmo (empacotado no WAR). Há algum modo para amarrar o local onde a aplicação começará a procurar os arquivos? Terei de alterar alguma propriedade do sistema, como:

System.getProperties().setProperty(“user.dir”, “/dir”); ?

Grato T+

4 Respostas

D

utilize dentro do servlet:

String path = getServletContext().getRealPath("/WEB-INF/pref.properties");
I

Valeu a dica! T+

F

É melhor usar:

getServletContext().getResourceAsStream("/WEB-INF/pref.properties");

Nem todos os containers descompactam a aplicação no caso de você a empacotar em war ou ear, impossibilitando a leitura.
Desse modo você garante a total compatibilidade da sua aplicação. Esse método te retorna um InputStream e aí é só fazer a leitura.

Apesar de no Tomcat funcionar, uma pequena mudança pode te economizar tempo no futuro. :cool:

I

Obrigado por esta informação também.

Criado 24 de janeiro de 2005
Ultima resposta 25 de jan. de 2005
Respostas 4
Participantes 3