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.