Deploy JSP apaga diretorios dinamicos

6 respostas
S

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?

abcs

6 Respostas

davidbuzatto

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

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 ?

quando crio os diretorios faço dessa maneira:

private void criarDiretorioModelo(String nomeDiretorio) throws Exception {

        String virtualPath = req.getRealPath("/Usuarios/"+rh.getDiretorioProjeto()+"/"+nomeDiretorio);
        String strDir2 = virtualPath +"/Fotos";
        String strDir3 = virtualPath +"/Plantas";
        String strDir4 = virtualPath +"/Off";
        String strDir5 = virtualPath +"/Obras";
        String strDir6 = virtualPath +"/Anexos";

        File file;

        file = new File(strDir2);
        file.mkdirs();

        file = new File(strDir3);
        file.mkdirs();
        
        file = new File(strDir4);
        file.mkdirs();
        
        file = new File(strDir5);
        file.mkdirs();

        file = new File(strDir6);
        file.mkdirs();

    }

obrigado.

davidbuzatto

Você não pode criar dentro do “projeto” (contexto).

S

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

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

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...

vlw

Criado 2 de dezembro de 2011
Ultima resposta 5 de dez. de 2011
Respostas 6
Participantes 2