Pessoal não tenho muita experiencia com Java, mas estou desenvolvendo uma aplicação em JSP. Já estou na versão beta da ferramenta, porém estou tendo o seguinte problema. Toda vez q faço um deploy da ferramenta na minha hospedagem os diretorios que foram criados dinamicamente são apagados. Então tenho arduo trabalho de sempre antes de fazer o deploy no tomcat fazer um backup de tdos esses diretorios e colocá-los como parte do projeto…
Qual é a melhor solução pra esse tipo de coisa não acontecer? Existe uma forma fácil de fazer deploy, onde eu não tenha esse tipo de problema?
Se esses diretórios estiverem dentro do contexto da sua aplicação, realmente eles serão excluídos.
Crie diretórios fora do contexto para que eles não sejam removidos e acesse esses diretórios pela aplicação.
[]'s
S
serraventura
Quando vc fala dentro do contexto quer dizer o q exatamente?
Os diretorios sao criados dentro do seguinte: build/web/diretoriosDinamicos/ ...
Será q meu problema esta sendo em usar o request.getRealPath ?
Você não pode criar dentro do “projeto” (contexto).
S
serraventura
Acho q entendi. Eu poderia criar no tomcat algo parecido com isso no diretorio raiz:
/PastaProjeto
/DiretoriosDinamicosProjetos (ficaria como se fosse um outro diretorio virtual)
e ae utilizaria o request.getRealPath para conseguir criar os diretorios no /DiretoriosDinamicosProjetos. Correto?
mas eu conseguiria acessar outra pasta de projeto de dentro de outra? e dessa maneira a listagem de diretorios iriam ficar visiveis pra qualquer um na internet não?
obrigado.
abcs
S
serraventura
Esse lance que falei não funciona não. O request.getRealPath não deixa eu acessar diretórios de outro projeto no meu tomcat, provavelmente por segurança.
Como eu faria isso então? Qual a forma comum de se trabalhar com diretórios e arquivos em java?
abcs
S
serraventura
fiz o teste sem usar o getRealPath
coloquei o caminho fixo na mão:
File file;
file = new File("/Users/thiagocs/MyAPPs/PROJAPP/web/testePorra");
file.mkdirs();
funcionou na boa, mas acho isso meio POG não? Pq imagina no servidor da hospedagem? vai ficar um caminho gigantesco e toda vez q por algum motivo mudar a aplicação de hospedagem o caminho iria mudar...
eu poderia usar uma constante com o caminho de produção: /var/www/vhosts/meuDominio/appservers/apache-tomcat-7x/webapps/, mas acredito q exista uma forma mais inteligente. Alguém daria uma idéia?
Não ta funcionando usar o getRealPath, pois ele sempre me retorna o projeto corrente e já no diretorio build/web até tento voltar pro diretorio PAI usando um ../, mas não funciona...