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("");
[quote=alias]hm…chutando aqui ao que me lembro, tente fazer isso em uma classe Servlet
String path = this.getServletContext().getRealPath("");
[/quote]
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
[quote=mauricioadl][quote=alias]hm…chutando aqui ao que me lembro, tente fazer isso em uma classe Servlet
String path = this.getServletContext().getRealPath("");
[/quote]
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[/quote]
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.
[quote]
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?[/quote]
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 ?[/quote]
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![/quote]
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![/quote]
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…[/quote]
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[/quote]
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![/quote]
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…[/quote]
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[/quote]
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[/quote]
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");
[/quote]
Otima ideia! Vou fazer isso!!!