Pessoal, tem algum macete pra pegar o diretorio da aplicação no tomcat?
se eu usar File(“teste.txt”) ele aponta para o diretorio lib do tomcat, bem doido!
[]'s
Pessoal, tem algum macete pra pegar o diretorio da aplicação no tomcat?
se eu usar File(“teste.txt”) ele aponta para o diretorio lib do tomcat, bem doido!
[]'s
hm…chutando aqui ao que me lembro, tente fazer isso em uma classe Servlet
String path = this.getServletContext().getRealPath("");
hm…chutando aqui ao que me lembro, tente fazer isso em uma classe Servlet
String path = this.getServletContext().getRealPath("");
essa instrução que vc passou funciona somente se estiver dentro de uma servlet ou jsp. mas preciso pegar de uma classe que nao possui uma referencia ao objeto ServletContext.
[]'s
hm…chutando aqui ao que me lembro, tente fazer isso em uma classe Servlet
String path = this.getServletContext().getRealPath("");essa instrução que vc passou funciona somente se estiver dentro de uma servlet ou jsp. mas preciso pegar de uma classe que nao possui uma referencia ao objeto ServletContext.
[]'s
De fato, é preciso a referencia ao ServletContext, me desculpe se minha dica foi deveras simplista. Mas então gambiarras alternativas provavelmente serão necessárias no seu caso :lol: … qual é o cenario aí, frameworks e tal?
o cenario eh bastante simples, preciso carregar um arquivo que tenha informações da conexao com o banco de dados. a classe que faz isso eh a fabrica de conexoes.
De fato, é preciso a referencia ao ServletContext, me desculpe se minha dica foi deveras simplista. Mas então gambiarras alternativas provavelmente serão necessárias no seu caso :lol: … qual é o cenario aí, frameworks e tal?
nao diria q sua informação eh simplista não, pelo contrario, ela eh muito util, nao no meu caso, mas pra quem acessar o topico futuramente.
Você não pode colocar o .jar da fábrica de conexões no WEB-INF/lib e o arquivo de configuração lá dentro também ?
Nesse caso é mais tranquilo, onde está esse arquivo? Dentro de WEB-INF/classes? Se sim, você consegue acessar esse arquivo com suaclasse.getResource() ou getResourceAsStream(), e a partir daí criar um File.
Você não pode colocar o .jar da fábrica de conexões no WEB-INF/lib e o arquivo de configuração lá dentro também ?
o pior q nao, tem um padrao para arquivos de configuração aqui e nao pode ser mudado. se mudar a cor do capim muito cabrito vai passar fome! se eh q vc me entende!!!
acho q vou fazer isso mesmo, pegar o local da classe e sair quebrando para tras ate chegar no diretorio da app, gambiarra detected! hehehe
Esse arquivo está na raiz da aplicação, entao?
isso mesmo!
isso mesmo!
Um arquivo com configurações de acesso a base de dados, na raiz da app web?
Digite a URL para esse arquivo no seu browser…
isso mesmo!
Um arquivo com configurações de acesso a base de dados, na raiz da app web?
Digite a URL para esse arquivo no seu browser…
nao acontece oq vc esta pensando nao hehehe. aconteceria se estivesse dentro da pasta WebContent, ae seria bem engraçado !
meu caso eh assim:
minha_app
-meu_arquivo.txt
-WebContent
---------------WEB-INF
---------------META-INF
acho q vou fazer isso mesmo, pegar o local da classe e sair quebrando para tras ate chegar no diretorio da app, gambiarra detected! hehehe
Você pode fazer um ServletContextListener e setar a localização do arquivo, ou os próprios dados da conexão como propriedades do sistema:
System.setProperty("com.meu.sistema.database.config.file" , servletContext.getRealPath());
e dentro da fábrica você lê a propriedade:
String filePath = System.getProperty("com.meu.sistema.database.config.file");
isso mesmo!
Um arquivo com configurações de acesso a base de dados, na raiz da app web?
Digite a URL para esse arquivo no seu browser…
nao acontece oq vc esta pensando nao hehehe. aconteceria se estivesse dentro da pasta WebContent, ae seria bem engraçado !
meu caso eh assim:
minha_app
-meu_arquivo.txt
-WebContent
---------------WEB-INF
---------------META-INF
Bom, mas isso é no Eclipse … Como fica o arquivo .war/pasta do deploy no Tomcat ?
acho q vou fazer isso mesmo, pegar o local da classe e sair quebrando para tras ate chegar no diretorio da app, gambiarra detected! hehehe
Você pode fazer um ServletContextListener e setar a localização do arquivo, ou os próprios dados da conexão como propriedades do sistema:
System.setProperty("com.meu.sistema.database.config.file" , servletContext.getRealPath());
e dentro da fábrica você lê a propriedade:
String filePath = System.getProperty("com.meu.sistema.database.config.file");
Otima ideia! Vou fazer isso!!!