Rebuild da aplicação no JBoss desaparece com arquivos de imagens gravadas em diretório da aplicação

1 resposta
K

Bom dia caros amigos do GUJ, estou com um problema estranho como a seguir:

Meu servidor de aplicações é o JBOSS 4.2.1, minha aplicação é baseada em servlets
e jsp’s, iniciada com java 1.3 e atualmente em java 1.5. Uso uma api de upload de
arquivos chamada javazoom :

http://www.javazoom.net/jzservlets/uploadbean/documentation/developerguide.html

Descobrí que as imagens são salvas no caminho “D:\jboss-4.2.1.GA\server\default\tmp\deploy”
dentro de uma pasta temporária bem parecida com a da aplicação onde foi feito o deploy
efetivo, “D:\jboss-4.2.1.GA\server\default\deploy”.

As imagens são salvas dentro desta pasta temporária, pois o exemplo da API nos diz para
pegarmos o path a partir do contexto do Servlet e o caminho contém a pasta temporária.

String path = getServletContext().getRealPath("/itens/").replace("\\","/");
u.uploadImagem(request,path,mrequest,objItem.getCod_item());

Método uploadImagem:

public void uploadImagem(HttpServletRequest request,String path,MultipartFormDataRequest mrequest,int codigo) throws UploadException, IOException{
        String ext;
        String filename = null;
        if(FileUpload.isMultipartContent(request)) {
            UploadBean b = new UploadBean();
            //lista negra b.setBlacklist(blackList);
            //lista branca b.setWhitelist(whiteList);
            //abaixo pega o caminho dentro do servidor
            //String path = this.getServletContext().getRealPath("/itens/").replace("\\","/");
            // Seta Arquivo Destino
            
            b.setFolderstore(path);

            // Faz Upload
            
             b.store(mrequest);
            
            Vector history = b.getHistory();

            for (int i=0;i<history.size();i++) {
                UploadParameters up = (UploadParameters) history.elementAt(i);
                filename = up.getFilename();
                ext = up.getFileextension();
            }
            history.clear();

            File nfile = new File(path + '/' + filename);
            File nfile2 = new File(path + "/"+codigo+"_"+RemoverAcentos.remover(filename.toLowerCase()));
            nfile.renameTo(nfile2);
            filename = RemoverAcentos.remover(filename.toLowerCase());
            String caminho = "http://localhost:8080/minhaaplicacao/itens/"+codigo+"_"+filename;   
            mItem m = new mItem((conexao)request.getSession().getAttribute("conexao"));
            wcf_item wcf = new wcf_item();
            wcf.setUrl_imagem(caminho);
            m.updateImagem(caminho,codigo);
        }
    }

Quando faço o rebuild essa pasta é apagada e perco as imagens.

Podia até tentar gravar numa pasta definida por um caminho físico dentro do servidor
ou do sistema operacional, no meu caso linux, onde o servidor de aplicações está hospedado,
mas o exemplo da API não me deixa essa conclusão.

Alguém podia me ajudar nessa questão?

Obrigado pela atenção de todos vocês que contribuem para o crescimento
contínuo do uso do JAVA em todo o planeta.

1 Resposta

K

Pessoal, resolví o problema, é que eu implantava o projeto compactado.
Fiz um deploy do “exploded war” e funcionou direitinho.

Criado 19 de maio de 2010
Ultima resposta 20 de mai. de 2010
Respostas 1
Participantes 1