Estava fazendo um pequeno contador de acessos, e achei que um arquivo texto poderia ser melhor para guardar esse valor.
Criei um método que verificava se o arquivo já existia, e se não, criava o mesmo. Mas ele foi criado na pasta do Tomcat, fora do meu contexto!!!
Eu tinha a idéia de que toda aplicação rodasse diretamente no seu diretório de “contexto”. Existe alguma configuração ou algum modo de estar somente no contexto? Não queria que, quando subir esse aquivo para o servidor, ele fique criando arquivos em outros lugares.
Pode postar o trecho de código no qual cria o arquivo?
E onde gostaria de criá-lo? Na raiz da aplicação? Ou no mesmo diretório da classe que cria o arquivo?
jaboot
opa LIPE, com certeza
public static void verificaExistencia(String nomeArquivo) throws IOException{
File f = new File(nomeArquivo);
if(f.exists()==false){
f.createNewFile();
PrintWriter p = new PrintWriter(f);
p.write("0");
p.close();
}
A minha idéia original era criar dentro do contexto.
Exemplo idiota:
Fico imaginando 500 contextos diferentes no tomcat, se cada um criar um arquivo, o diretório do Tomcat vai ficar uma zona!!! :shock: :shock:
_fs
Ahn… o grande lance é o nome do arquivo. Está simplesmente passando “meuArquivo.properties”? Se sim, basta:
File f = new File( getServletContext().getRealPath( "/" ) + nomeArquivo );
Se está curioso basta imprimir o que getServletContext().getRealPath( “/” ) retorna.
jaboot
Valeu cara, era isso mesmo.
Mas isso não responde totalmente a minha pergunta. Olha só:
Na hora da criação, eu não tinha certeza se só essa aplicação é que iria acessar o arquivo, então criei duas classes.
Uma para chamar quem modifica o arquivo(e mais outras coisas) e a que realmente põe a mão na massa e modifica o arquivo.
Mas as duas estão no “classes/br/com/nomedaempresa/”
Porque a criação do arquivo é na pasta raiz do Tomcat? Pensando de forma lógica, era para ser criado na mesma pasta das classes, ou no raiz do contexto.
_fs
Não sei explicar o.o tem a ver com o fato de que é o Tomcat que executa sua classe.
Pode fazer um teste criando uma outra classe qualquer em outro pacote que executa a classe que cria o arquivo.
jaboot
Verdade. Apesar de esquisito.
Vou ver se tenho um tempo disponível, e quem sabe, realizar alguns testes. Qualquer informação adicional, volto a postar.
Alguém sabe o email de sugestões do projeto do Tomcat?